我目前正在使用带有简单变量的“不相等”运算符来测试C中的if语句。但是由于某种原因它没有按预期工作,我不明白为什么。我已经分别测试了“不相等”运算符,它可以工作,但是将它们添加到一个if语句中是行不通的。
可能是我想念的简单东西。
int nr1, nr2, nr3;
nr1 = 1;
nr2 = 0;
nr3 = 0;
if (nr1 != 0) {
printf("nr1 - statement: true");
}
else {
printf("nr1 - statement: false");
}
printf("\n\n");
if (nr2 != 0) {
printf("nr2 - statement: true");
}
else {
printf("nr2 - statement: false");
}
printf("\n\n");
if (nr3 != 0) {
printf("nr3 - statement: true");
}
else {
printf("nr3 - statement: false");
}
printf("\n\n");
printf("-----------------------------\n\n");
// if all variables does not contain 0
if (nr1 != 0 || nr2 != 0 || nr3 != 0) {
printf("if-statement: True\n\n");
printf("nr1: %d\nnr2: %d\nnr3: %d", nr1, nr2, nr3);
}
//if one variable contain 0
else {
printf("if-statement: False\n\n");
printf("%d %d %d", nr1, nr2, nr3);
}
答案 0 :(得分:2)
如果您想检查// if all variables does not contain 0
,
此
if (nr1 != 0 || nr2 != 0 || nr3 != 0)
应该是
if (nr1 != 0 && nr2 != 0 && nr3 != 0)
因为||
返回true
,如果任何操作数是true
。
并且&&
仅在所有操作数均为true
时返回true
。