2015-10-20 72 views
-1
While (condition-1 && condition-2) { 
    // Do something 
} 

假設條件-1失敗,條件-2可能會導致分段錯誤。那麼,即使在檢查條件-2之前條件-1失敗,循環會立即退出還是無論如何檢查它,這使得這種做法不安全?循環中的條件順序

例如:條件1可以是 '!節點*溫度= 0' 和條件2可以是 '!TEMP->下一= INT I'

+1

如果條件1失敗,條件2將不會被檢查,因爲AND。遇到「FALSE」時,沒有任何事情可以使條件成立TRUE – CubeJockey

+1

如果條件1失敗,則不會檢查第二個條件&&。並且循環將退出 – SacJn

+0

如果&&被替換爲||,第一個失敗的第二個條件是否會失敗? – Chanakya

回答

0

考慮到要使用的操作數&&,第二條件永遠不會被檢查,因爲集體條件永遠不會成立。

0

&&是一個條件語句將檢查第一個條件,如果它是真的,它會檢查第二個條件。但是如果它是假的,它將退出循環而不檢查第二個條件。

+1

'&'是一個按位邏輯(算術)運算符,不是布爾運算符。 – rici

+0

啊,你是對的,對不起。 –

3

如果condition-1false那麼沒有理由檢查其他條件爲false && anything仍然是false。這叫做Short Circuit Evaluation

反之,如果我們有

While (condition-1 || condition-2) { 
    // Do something 
} 

condition-1 == true那麼我們就永遠不會檢查condition-2作爲true || anything仍然是正確的。