logic - 这里有逻辑漏洞吗?

标签 logic computer-science boolean-logic

我需要执行一段这样的代码

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/

相关文章:

binary - 什么是 “two' 的补码”?

java - 用析取替换 if 语句

MySQL View 使用 AND 返回更多结果?

php - 对预订系统中可用单位的逻辑进行排序

c# - 在 using 语句中使用变量与 SQL Server

computer-science - 一阶逻辑中统一的真实世界示例?

computer-science - 开发人员要点 - 资源和项目尝试

r - 查找包含在两个 `n1` FALSE 之间的 `n2` TRUE,整个内容包含在 `n3` TRUE 之间,等等

python - 为什么这个 python if 语句不等于 true?

javascript - 将 if 语句转变为错误检查