if 语句中的简单 "not equal" 运算符无法按预期工作
Simple "not equal" operator in if-statement does not work as expected
我目前正在使用具有简单变量的 "not equal" 运算符测试 C 中的 if 语句。但由于某种原因它没有按预期工作,我不明白为什么。我已经单独测试了 "not equal" 运算符并且它有效,但是将它们添加到一个单独的 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);
}
如果你想检查// if all variables does not contain 0
那么,
这个
if (nr1 != 0 || nr2 != 0 || nr3 != 0)
应该是
if (nr1 != 0 && nr2 != 0 && nr3 != 0)
因为 ||
returns true
如果任何操作数是 true
。
和 &&
returns true
仅当所有操作数都是 true
.
我目前正在使用具有简单变量的 "not equal" 运算符测试 C 中的 if 语句。但由于某种原因它没有按预期工作,我不明白为什么。我已经单独测试了 "not equal" 运算符并且它有效,但是将它们添加到一个单独的 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);
}
如果你想检查// if all variables does not contain 0
那么,
这个
if (nr1 != 0 || nr2 != 0 || nr3 != 0)
应该是
if (nr1 != 0 && nr2 != 0 && nr3 != 0)
因为 ||
returns true
如果任何操作数是 true
。
和 &&
returns true
仅当所有操作数都是 true
.