bai*_*mar 2 c# if-statement multiple-conditions
我的条件如下:
if (!(InRange1 || InRange2 || InRange3))
{
//Do Something
}
Run Code Online (Sandbox Code Playgroud)
每个InRange变量都是布尔值.
期望的行为是,如果这些值中的任何一个是假的我想做某事,但它不是那样工作的.在触发事件之前,所有值都必须为false.
是否需要写成
if (!InRange1 || !InRange2 || !InRange3)
{
//do something
}
Run Code Online (Sandbox Code Playgroud)
而且,在任何一种情况下,我都很好奇为什么原始陈述不起作用.
EJo*_*ica 10
你可以使用DeMorgan的法律.
你拥有的东西相当于NOR.!(A | B | C)相当于!A & !B & !C德摩根定律.
你想要的是NAND,所以!(A && B && C).这完全等同于您所寻找的 - !A | !B | !C.
你的第二个假设是正确的。
您可以写它not(A) OR not(B) or not(C),或者,not(A AND B AND C)。
所以
if (!(InRange1 && InRange2 && InRange3))
{
//Do Something
}
Run Code Online (Sandbox Code Playgroud)
和
if (!InRange1 || !InRange2 || InRange3)
{
//Do Something
}
Run Code Online (Sandbox Code Playgroud)
是等价的。
| 归档时间: |
|
| 查看次数: |
9251 次 |
| 最近记录: |