此代碼在for循環條件中使用& &。它重複4次,得到答案「sum = 20」。我認爲它迭代5次,因爲條件的左側條件爲真,當右側變爲假時結束循環。Java短路混淆
基本上我的問題是爲什麼它迭代4次而不是5次,使「總和= 30」?謝謝
`int[] lst = {1,2,3,4,5,4,3,2,1};
int sum = 0;
for (int frnt = 0, rear = lst.length - 1;
frnt < 5 && rear >= 5; frnt++, rear--){
sum = sum + lst[frnt] + lst[rear];
System.out.println("frnt: " + frnt);
System.out.println("rear: " + rear);
System.out.println();
}
System.out.print(sum);`
&&是*和*,這意味着*兩個條件必須爲真*,並且爲false將導致條件失敗。 *這和那*必須都是真的。 –
我認爲'兩個條件必須是真的'是爲了&。 &&是短路'和'這意味着如果第一個是真的,它不會評估第二個。無論如何,這就是我所學到的。 – physicalhacker
||對於||來說是正確的(要麼)。對於&&,短路意味着如果第一個是錯誤的,則它不會評估第二個,因爲整個表達式已經是錯誤的。 – clcto