我需要知道在语句中如何评估逻辑AND和OR运算符。我找到了几个试图解释它的网站,但我无法正面或反面。我知道我可以用花括号来命令它,但我想知道它是如何工作的。&& ||操作符交互
例如将
if(b1 && b2 || b3)
评价为:
(b1 && b2) || b3
或为:
b1 && (b2 || b3)
我需要知道在语句中如何评估逻辑AND和OR运算符。我找到了几个试图解释它的网站,但我无法正面或反面。我知道我可以用花括号来命令它,但我想知道它是如何工作的。&& ||操作符交互
例如将
if(b1 && b2 || b3)
评价为:
(b1 && b2) || b3
或为:
b1 && (b2 || b3)
您可以在任何operator precedence table该&&
具有更高的优先级找到比||
,这意味着它被评估为
(b1 && b2) || b3
不过请注意,这两个&&
和||
是短路,这意味着b2
和b3
不必进行评估。例如,如果b1
评估为false
,则根本不会评估b2
。另外,如果b1 && b2
评估为true
,则不会评估b3
。
短路对避免评估可能失败的表达式非常有用,例如。 if(x> = 0 && myArray [x] ...){...} – Benj
&&
和||
工作就像*
并在这方面+
。
这些东西都有详细记录;哪些资源首先被咨询? – 2012-11-29 21:39:45
'()'是圆括号,而不是大括号,它们是'{}'。 – Neil