我需要执行一段这样的代码
if(condition 1)
{
set variable to false
}
else if (condition 2)
{
set variable to false
} else {
set variable to true
}
这个是不是一样
if(!condition 1)
{
if(!condition2)
{
variable = true
}
}
这两者的结果在任何情况下都不同吗?这有系统的证明吗?
最佳答案
第二个片段几乎等同于第一个片段 - 如果您可以假设 variable
被初始化为 false
除非另外设置,这可能在某些编程语言中有效,但这可能是个坏主意,您最好在调用此代码段之前将其显式初始化为 false
。
请注意,顺便说一下,使用逻辑运算符可以显着缩短整个表达式:
variable = !(condition1) && !(condition2);
或者可以说更优雅:
variable = !(condition1 || condition2);
关于logic - 这里有逻辑漏洞吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34727701/