提问人:EonRyan 提问时间:8/22/2021 最后编辑:BohemianEonRyan 更新时间:8/22/2021 访问量:2169
两个布尔变量既为真又为假的解释 [closed]
Explanation of two boolean variables being both true or both false [closed]
问:
在教程中,我被要求编写一个表达式如下:
给定布尔变量:
boolean a, b;
编写一个表达式,即 if either 和 are both 或 if 和 are both 。true
a
b
true
a
b
false
我从测验中得到的答案是:
a && b || !a && !b
请解释一下这意味着什么。
答:
让我们一块一块地看。我打算把 paranthesis 放在事情周围,以使其更有意义。
(a && b) || (!a && !b)
首先,从(a && b)
有了这个,所有这一切都意味着,所以,两者都必须在这个陈述中是正确的a == true AND(&&) b == true
a
b
二、(!a && !b)
与前一个类似,这意味着 所以,在这个陈述中,两者都必须是假的a == false AND(&&) b == false
a
b
现在,在两者之间加上一个,这意味着要么两者都必须是真的,要么两者都必须是假的。OR(||)
a&&b is only true when a is true and b is true.
一个||如果 (a,b) 之一为真,则 b 为真 假设 a = true 和 b = true,则 !a = false,!b = false(否定)。 换句话说,当 a 和 b 都为假时,语句 !a&&!b 为真,否则为假。 所以语句 a&&b ||当 A 和 B 都为 true( A&&B 将为 true)或当 A 和 B 为 false( !a&&!b 将为 true 时,!a&&!b 为 true) 为 true
首先,测验提出了一个糟糕的解决方案。最好的答案很简单:
a == b
但是,要解释表达式,您应该知道,当布尔变量是逻辑表达式的一部分时,其值将成为该表达式的一部分。换句话说,这两个表达式是相同的:a && b || !a && !b
a
a == true
同样,这两个表达式是相同的:
!a
a == false
另请注意,逻辑运算符优先于(即在之前计算)。&&
||
把这些放在一起,我们可以转换表达式
a && b || !a && !b
到等价物:
(a == true && b == true) || (a == false && b == false)
然后是英文伪代码:
(a is true AND b is true) OR (a is false AND b is false)
评论
a == b
!(a^b)
^
!=