|| 是 OR 邏輯運算,而 && 是 AND 邏輯運算。 || 的優先度是 3,&& 的優先度是 4。 它們都是左傾。所以,以下兩個語句相同:
A || B && C || D && E 和 (A || (B && C)) || (D && E)
更有意義的是,凡是用 AND 和 OR 組成的邏輯語句, 只會做到可以決定 True 或 False 的程度就停下來,不再做下去。例如
c == ' ' || c == '\t' || c == '\n'只要 c == ' ' 是 TRUE,整個語句必定是 TRUE, 後面的 || 運算都不會執行。 但是,如果 c == ' ' 是 FALSE,整個語句卻未必是 FALSE, 所以會去執行 c == '\t',如果這一句是 TRUE,整個語句是 TRUE, 也就不必繼續了。否則再執行下一句。
同理,若有
A && B && C的情形,若 A 是 FALSE,整個語句必定是 FALSE, 就不必去執行 B 和 C。 但是如果 A 是 TRUE,整個語句還未確定, 因此必須執行 B。
習題