【发布时间】:2022-01-13 02:26:13
【问题描述】:
我目前正在学习布尔数据类型,我想知道 if-else 语句中的条件是否完整...
#include <stdio.h>
#include <stdbool.h>
int main() {
bool a = false, b = false, c = false , d = false;
if ((a&&b)||(!c&&d)) {
if(((a||!b)&&c)||(b&&!a)) {
printf("1");
} else if ((a||(d&&b))&& !b) {
printf("2");
} else {
printf("3");
}
} else {
if(!(d&&c)&&(!a)) {
printf("4");
} else {
printf("5");
}
}
return 0;
}
if-else语句中的条件不应该有比较吗?例如 (a&&b)==true || (!c&&d)==true。按原样运行程序会输出“4”,我对为什么有点困惑。谢谢
【问题讨论】:
-
&&和||运算符将其操作数视为布尔值并返回布尔值。无需与true明确比较。 -
@Barmar 他们评估为
int -
@M.M 这是布尔值。
标签: c if-statement boolean