[英]VBA Positive For loop, negative step
Sub Test1()
Dim a As Integer
For a = 1 To 3 Step 1 'STEP POSITIVE ONE
Next
Debug.Print a
End Sub
收益率為4,如預期。
Sub Test2()
Dim a As Integer
For a = 1 To 3 Step -1 'STEP NEGATIVE ONE
Next
Debug.Print a
End Sub
為什么踩到“外部”循環會導致1?
為什么VBA步入Test1的界限,但是當它對於Test2的超出部分時停止踩踏?
編輯:除上述之外,運行For a = 1 To 1 Step 1
得到2,而For a = 1 To 1 Step -1
得到0。
For a = 1 To 2 Step 1
得到3,但For a = 1 To 2 Step -1
得到1。
在Test1
(即For a = 1 To 3 Step 1
),在第3次循環之后, a
增加到4.當它大於3時,它停止並顯示4。
在Test2
(即For a = 1 To 3 Step -1
), a
初始設置為1.因為它已經小於3,所以它立即停止並顯示1。
在For a = 1 To 1 Step 1
, a
設置為1,其不大於1,因此循環繼續,然后a
遞增到2.當2大於1時,它停止並顯示2。
在For a = 1 To 1 Step -1
, a
設置為1,不小於1,因此循環繼續,然后a
遞減到0.當0小於1時,它停止並顯示0。
在For a = 1 To 2 Step 1
, a
設置為1,不大於2,因此循環繼續,然后a
遞增到2,然后a
遞增到3.當3大於1時,它停止並顯示3。
在For a = 1 To 2 Step -1
, a
設置為1,小於2,因此循環停止並顯示1。
這些循環中的實際過程是:
將循環計數器初始化為“起始值”
循環執行以下步驟:
確定循環計數器是否大於“結束值”(如果“步”為正或零)或小於“結束值”(如果“步”為負),如果是,則退出循環
在循環中執行語句
將“step”添加到循環計數器
這些都記錄在MSDN頁面上的“For ... Next Statement”中 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.