標題:
[發問]
for 迴圈 最後結果
[打印本頁]
作者:
li_hsien
時間:
2014-3-8 22:29
標題:
for 迴圈 最後結果
請問一下各位大大
小弟有個迴圈的邏輯不太懂
Sub test()
Dim sum As Integer
Dim i As Integer
sum = 0
For i = 1 To 5
sum = sum + 1
Debug.Print i
Next
Debug.Print i
End Sub
複製代碼
最後印出i是6
可是for 迴圈i不是跑到5而已嗎???
為什麼最後會是印出6呀???
麻煩幫小弟解解惑 感謝 : )
作者:
Hsieh
時間:
2014-3-8 22:44
回復
1#
li_hsien
迴圈的作用是變數以等差值(step)方式順序增減
當遇到next就會將變數加上step值
當變數值達到迴圈結束條件就跳出迴圈
所以當i=5時還沒到達跳出迴圈
但是執行到下一行next時,因為加入step值1成為6
已經超出迴圈最大值,就結束迴圈,此時的值當然是要超出迴圈值。
作者:
li_hsien
時間:
2014-3-10 08:18
回復
2#
Hsieh
我以為是像字面上一樣就跑1~5
所以這跟Do While的想法差不多囉???
沒設定等差多少?
就step就直接為1的意思吧?
感謝大大解惑 一整個釐清了一個點
作者:
Hsieh
時間:
2014-3-10 08:43
回復
3#
li_hsien
do.. loop也是迴圈
只是for....next的迴圈出口已經被指定
就算迴圈當中沒有出現符合的條件
當迴圈執行完最後一次,就自動跳出迴圈
do....loop則不同,指定迴圈初始值後
會依據指定的條件決定是否繼續
當運算過程中沒有達到退出迴圈的條件就會繼續累加
造成無窮迴圈,導致運算無法終止
作者:
li_hsien
時間:
2014-3-10 10:29
回復
4#
Hsieh
謝謝板大的解釋
我一開始只以為他就跑1~5
原來他還是會累加到6,但因為for只到5,所以不繼續迴圈因而停止了
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)