2012-11-29 57 views
-1

我需要知道在语句中如何评估逻辑AND和OR运算符。我找到了几个试图解释它的网站,但我无法正面或反面。我知道我可以用花括号来命令它,但我想知道它是如何工作的。&& ||操作符交互

例如将

if(b1 && b2 || b3) 

评价为:

(b1 && b2) || b3 

或为:

b1 && (b2 || b3) 
+3

这些东西都有详细记录;哪些资源首先被咨询? – 2012-11-29 21:39:45

+0

'()'是圆括号,而不是大括号,它们是'{}'。 – Neil

回答

9

您可以在任何operator precedence table&&具有更高的优先级找到比||,这意味着它被评估为

(b1 && b2) || b3 

不过请注意,这两个&&||是短路,这意味着b2b3不必进行评估。例如,如果b1评估为false,则根本不会评估b2。另外,如果b1 && b2评估为true,则不会评估b3

+0

短路对避免评估可能失败的表达式非常有用,例如。 if(x> = 0 && myArray [x] ...){...} – Benj

0

&&||工作就像*并在这方面+