【发布时间】:2013-01-24 04:32:45
【问题描述】:
boolean a = true
boolean b = true
<random code in here, booleans may or may not change>
if ((!a || !b) || (!a && !b)){
doSomethingElse();
}
这段代码对我不起作用,有什么简单的解决方法?
要明确: if 语句应该起作用: 如果至少有一个布尔值是假的
3 例:
a = False b = True
a = True b = False
a = False b = False
我可以在一个长的 if 语句中做到这一点,但我只是想知道是否有一种简单的方法来实现它。
【问题讨论】:
-
您是否将布尔值设置为 false?因为它正在检查它们是否为假,并且看起来您已将它们设置为真?
-
@JoseSwagKid :你的意思是如果其中一个是假的调用 doSomething() ,否则调用 doSomethingElse() ??????
-
保持简单:如果至少有一个布尔值是假的(所以其中一个或两个) - 应该调用 doSomethingElse - 我希望它更清楚。
-
因为所有的答案都是
(!a || !b)或!(a && b),现在似乎是时候链接到DeMorgan's Laws 来解释为什么这两个语句是等价的