在 VB 中編寫如下代碼:
Dim i%, j%
j = 10
For i = 1 To j
i = i + 1
j = j - 1
Next
Print "i=" & i, "j=" & j
執行結果顯示 i=11、j=5,這是為什麼?
關鍵在於理解 VB 的 For 迴圈機制:
i=1,j=10。迴圈上限在進入迴圈時已確定為 10(即 For i = 1 To 10 Step 1),後續修改 j 不會改變迴圈上限。i = i + 1(Step 1)。i = i + 1 和 j = j - 1。| 輪次 | 迴圈開始時 i | 迴圈體內 i=i+1 後 | 迴圈體內 j=j-1 後 | Next 後 i 自增 | 迴圈結束時 i | 迴圈結束時 j |
|---|---|---|---|---|---|---|
| 1 | 1 | 2 | 9 | 3 | 3 | 9 |
| 2 | 3 | 4 | 8 | 5 | 5 | 8 |
| 3 | 5 | 6 | 7 | 7 | 7 | 7 |
| 4 | 7 | 8 | 6 | 9 | 9 | 6 |
| 5 | 9 | 10 | 5 | 11 | 11 | 5 |
第 5 輪結束後 i=11,超過上限 10,迴圈終止。最終輸出 i=11, j=5。
