爲什麼此警報顯示9但不是5或另一個數字?使用if和break語句循環
for (var i = 0; i < 9; i+=2)
{
if (++i == 5) break;
else continue;
}
alert(i++);
爲什麼此警報顯示9但不是5或另一個數字?使用if和break語句循環
for (var i = 0; i < 9; i+=2)
{
if (++i == 5) break;
else continue;
}
alert(i++);
您正在每個循環多次遞增您的索引。
首先傳遞變量爲1,因爲您在if
塊中遞增0。
下一個變量的值爲3,因爲for
塊中的增量值。
然後在if
塊你把它從for
增量遞增到4
然後6。
然後從if
增加7。
然後9從for
增量和for
不再有效並中斷。
這應該4你如你所願。
for (var i = 0; i < 9; i+=2)
{
if (i++ == 5) {
alert(i++);
};
else continue;
}
它會提醒當i
值將是4
因爲你for loop
體內的if statement
不會進行評估,以true
。
像下面一樣你的代碼將被執行。
迭代1
if(1 == 5) //false
迭代2
if(4 == 5) //false
迭代3
if(7 == 5) //false
第三後迭代,i
將爲9
,因此for循環的條件將在此時失敗並且循環結束。然後在循環外部,警報將打印i
的值爲9.
這是因爲在您的循環中,當if (++i == 5) break
檢查發生時,我從不5。
在第一次迭代中,我是0.但是,然後你的++i
使我變成1,所以在第二次迭代中,我在循環的開始是3。然後++1
讓我去4,所以在下一次迭代,它跳過了5(因此它永遠不會中斷),併成爲6.
它提醒9,因爲當這是我什麼時候你的循環已經完成。
因爲您正在循環外調用警報。那時我的價值是9.它永遠不會滿足你的條件。 –
非常感謝。 – Alexey