对if条件感到困惑,如何执行以下语句。
if(1 && (1 || 0) != 0) or if(1 || (1 && 0) != 0)
在上面的if语句中,执行/验证语句的顺序是什么 (从左到右)从左到右,如果第一个参数/表达式为真,它会评估第二个表达式/参数吗?对于逻辑AND和OR运算符都是如此。
感谢。
答案 0 :(得分:4)
如果第一个操作数评估为&&
,则逻辑false
短路(因为false && x
对于所有x都是false
如果第一个操作数评估为||
,则逻辑true
短路(因为true || x
对于所有x都是true
他们都是从左到右评估。
答案 1 :(得分:1)
从左到右
(1 || 0) != 0
。为此,它执行1 || 0 - >是的,所以整个事情都是真的。答案 2 :(得分:0)
从左到右。 ||如果第一个表达式为真,则短路,&&如果第一个表达式为假。
答案 3 :(得分:0)
这两件事情根本不同,请阅读 D Morgans Laws !s
答案 4 :(得分:0)
让我们一步一步地分解它:
(1 || 0)
变为true
,因为1短路表达式
所以(1 || 0) != 0
是true
1 && true
的逻辑和&&的定义是正确的。操作
or
是||
的定义/关键字,但第一部分已经为真,因此我们再次对表达式进行短路,并执行if
块内的代码。