我一直在尋找布爾表達式評估的順序的解釋,但找不到一個。以什麼順序評估布爾表達式
看看這種說法:
if (locClsTanken.PlaceID == -1 && locRwF.PlaceID > -1 || locClsTanken.DagPrijs == 0)
這是如何評估的。
會是這樣的:
if ((locClsTanken.PlaceID == -1 && locRwF.PlaceID > -1) || locClsTanken.DagPrijs == 0)
或像這樣:
if (locClsTanken.PlaceID == -1 && (locRwF.PlaceID > -1 || locClsTanken.DagPrijs == 0))
是否有關於這個我不知道正確的搜索詞,是因爲英語不是我的語言的一些文檔。
我知道我可以測試它,但我想找到這個文件,所以我可以完全理解
正如您從答案中發現的那樣,所尋找的術語是「優先」 - 但我也會注意到在我能想到的幾乎所有語言中,額外的括號不會強加性能損失,所以如果您完全不確定,只需插入括號,以便表達式*清楚地*做你打算做的事情。 –
@Damien_The_Unbeliever是的,我總是使用括號,但我今天在somenones代碼中發現了這個表達式,並且想要確定將括號放在哪裏。謝謝 – GuidoG
事實上,使用括號。你不僅應該編寫某種程序可行的代碼,還應該編寫其他人可以理解的代碼。如果你添加一些括號,至少下一個閱讀你的代碼的人不需要問這個問題。將條件重構爲函數可能對未來的程序員更好。如果你是未來的程序員,千萬不要錯過讓事情變得更好的機會:) – oerkelens