var num = 0, i = 0, j = 0;
outermost: for (; i < 10; i++) {
for (; j < 10; j++) {
if (i == 5 && j == 5) { break outermost; }
num++;
}
}
alert(num); // 預期 55,實際 10
i=0,內層 j 從 0 遞增至 9,num 累加 10 次(i=0 時 i==5 不成立)。j=10,**不再重置為 0**(因為 for(; j<10; j++) 缺少初始化部分)。i=1,內層條件 j<10 直接為假,不執行循環體。i=2..9,內層均不執行,num 不再增加。num=10。在內層循環初始化 j:
outermost: for (; i < 10; i++) {
for (j = 0; j < 10; j++) { // 每次外層迭代重置 j=0
if (i == 5 && j == 5) { break outermost; }
num++;
}
}
// 結果:i=0..4 各 10 次 = 50,i=5 時 j=0..4 共 5 次 → 總計 55
for 循環三部分(初始化;條件;增量)均可省略,但**省略初始化不會自動重置變量**。break outermost 直接跳出最外層循環,不會執行外層的增量表達式 i++。