在以下语句中,a和b是布尔变量:
在这里输入代码 布尔c =(a&& b)|| !(a || b);
在什么条件下,c的值是真的?
答案 0 :(得分:2)
让我们找出答案,
boolean[] test = { true, false };
for (boolean a : test) {
for (boolean b : test) {
boolean c = (a && b) || !(a || b);
System.out.printf("a=%s, b=%s = %s%n", a, b, c);
}
}
输出
a=true, b=true = true
a=true, b=false = false
a=false, b=true = false
a=false, b=false = true
所以你的测验问题的答案是 B.仅当a的值与b的值相同时才<。em>
答案 1 :(得分:1)
如果您不想编写代码并像我一样喜欢做真值表,那么它也会告诉您正确的答案:
a b (a && b) || !(a || b)
0 0 0 0 0 1 1 0 0 0 <- this row
0 1 0 0 1 0 0 0 1 1
1 0 1 0 0 0 0 1 1 0
1 1 1 1 1 1 0 1 1 1 <- this row
所以它是 B。仅当a的值与b的值相同时才<。em>
如果SO支持LaTeX命令,这看起来会好得多......