首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

VB 中 For 迴圈變數修改導致的迴圈次數解析

     編輯:程式設計綜合問答

問題描述

在 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 迴圈機制:

  1. 初始化:i=1,j=10。迴圈上限在進入迴圈時已確定為 10(即 For i = 1 To 10 Step 1),後續修改 j 不會改變迴圈上限。
  2. 每次迭代結束時,系統會自動執行 i = i + 1(Step 1)。
  3. 迴圈體內又手動執行了 i = i + 1 和 j = j - 1。

逐輪推演

輪次迴圈開始時 i迴圈體內 i=i+1 後迴圈體內 j=j-1 後Next 後 i 自增迴圈結束時 i迴圈結束時 j
1129339
2348558
3567777
4786996
5910511115

第 5 輪結束後 i=11,超過上限 10,迴圈終止。最終輸出 i=11, j=5。

核心結論

  • 迴圈上限在進入時固定,不受迴圈內變數修改影響。
  • 避免在 For 迴圈內修改控制變數,否則會導致難以預測的行為。

示意圖

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved