我不確定為什么這兩個代碼塊的行為不同。我認為這個問題可能與運算子優先級有關,但我嘗試了各種括號組合并且無法更改結果。
第一個塊運行一次,但第二個塊運行三次。為什么第一個塊也不運行三次(對于 i = 4、2 和 1)?
for (int i = 4; i > 0 && 4 % i == 0; i--)
System.out.println("hi");
for (int i = 4; i > 0; i--)
if (4 % i == 0)
System.out.println("bye");
uj5u.com熱心網友回復:
這是因為當 for 回圈中的條件變為 false 時,回圈將停止運行。所以第一次 4 % i 不為零時,回圈將中斷并移動到它下面的任何內容。
uj5u.com熱心網友回復:
第一個塊有效,因為它只使用 > 和 != 運算子。這意味著第二個塊也必須使用 > 和 !=,這使得陳述句成為非關系運算子。
優先級 ==> && 或 || then ==> < or > then ==> <= or >= then ==> = then ==> or - then ==> *, /, %, 余數/模運算子
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/422243.html
標籤:
上一篇:帶有期望的事務注釋
