2017-03-10 13 views
-4

在下面的C#示例,用&&和||在邏輯表達式中添加不必要的括號的目的

bool isTrue = (isP1 && isQ1) || 
    (isP2 && isQ2) || 
    (isP3 && isQ3); 

括號是不必要的,因爲&&具有比||更高的優先級。

但是我聽說

的括號中增加了清晰度和因爲邏輯可能會失敗 否則做左到右PEMDAS處理

什麼是「因爲邏輯可能會失敗,否則做從左到右的PEMDAS處理「是指在這裏?

在進行從左到右的PEMDAS處理時,&&沒有比||更高的優先級嗎?

謝謝。

+0

這意味着有人沒有內化運營商的優先規則(超越PEMDAS) - 或認爲其他讀者的代碼可能不會。夠公平(特別是因爲它們在編程語言之間有所不同)。 –

+4

如果您需要考慮是否需要括號,那麼使用它們可能會更好。 –

+0

有時它不僅有用括號,而且引入瞭解釋變量,爲條件提供了可讀的名稱。例如。而不是'isP2 && isQ2',你可以使用'isRentExpired' –

回答

0

是的&&運營商的優先級高於||,但如果使用括號,它可以幫助第三方確定程序員的目的,同時也清楚地解釋了評估的方式。總而言之,它用於更好地理解所編寫的程序。