我想刷新我的Java,因爲它已經很長時間了,並開始在CodingBat.com上進行一些熱身活動。 (提防擾流板可以效法);)使用Java檢查多個條件時的效率
我只是做了一個非常簡單的一個說:
鑑於2個整數,a和b,返回真,如果一個,如果他們是10或如果他們的 總和10.
makes10(9,10)→真
makes10(9,9)→假
makes10(1,9)→真
我的解決辦法是:
public boolean makes10(int a, int b)
{
if(a==10 || b==10)
return true;
else
{
if((a+b)==10)
return true;
else
return false;
}
}
給出的解決方案是:
public boolean makes10(int a, int b) {
return (a == 10 || b == 10 || a+b == 10);
}
我的問題是在的情況下,一個= 10或b = 10將給出解決方案的if語句結束並返回true還是會先完成檢查每一種情況都需要不需要的加法操作? (即a + b)
在C++中有一個這種行爲的名稱,但對於我的生活,我不記得它是什麼。
另請參閱:http://stackoverflow.com/questions/7101992/why-do-we-usually-use-not-what-is-the-difference – assylias
該行爲被稱爲「短路」評估。 – resueman
雖然第二種方法更有效率,但請記住您的代碼在功能上是一致的:) – Deactivator2