將一組語句重複執行指定的次數的程式。
基本介紹
- 中文名:步進
- 外文名:Step
- 語言:Visual Basic
各部分說明
- counter
- For 語句的必選項。數值變數。它是循環的控制變數。
- datatype
- 如果尚未聲明 counter,則是必選項。counter 的數據類型。
- start
- 必選。數值表達式。counter 的初始值。
- end
- 必選。數值表達式。counter 的最終值。
- step
- 可選。數值表達式。每次循環後 counter 的增量。
- statements
- 可選。放在 For 和 Next 之間的一條或多條語句,它們將運行指定的次數。
- Exit For
- 可選。將控制轉移到 For 循環外。
- Next
- 必選。結束 For 循環的定義。
用法
Forcounter[Asdatatype]=startToend[Stepstep][statements][ExitFor][statements]Next[counter]
備註
Step 值 | 循環執行的條件 |
---|---|
正數或零 | counter <= end |
負數 | counter >= end |
規則
- 數據類型。counter 的數據類型通常是 Integer,但也可以是任何支持大於或等於 (>=)、小於或等於 (<=)、加法 (+) 和減法 (-) 運算符的類型。只要支持所有這些運算符,該數據類型甚至可以是用戶定義的類型。
start、end 和 step 表達式通常計算為 Integer 類型,但也可以計算為任何拓寬到 counter 的類型的數據類型。如果要將用戶定義的類型用於 counter,這意味著您可能必須定義 CType 轉換運算符,來將 start、end 或 step 的類型轉換為 counter 的類型。 - 聲明。如果未在此循環外聲明 counter,則必須在 For 語句內聲明它。這種情況下,counter 的範圍就是循環的主體。但是,不能既在循環外聲明 counter,又在循環內聲明 counter。
- 疊代次數。Visual Basic 僅在循環開始之前計算一次疊代值 start、end 和 step。如果語句塊更改 end 或 step,這些更改不影響循環的疊代。
- 嵌套循環。可以將一個循環放在另一個循環內以嵌套 For 循環。不過,每個循環必須具有唯一的 counter 變數。下面的結構是有效的。
ForiAsInteger=1To10ForjAsInteger=1To10ForkAsInteger=1To10NextkNextjNexti
- 標識控制變數。可以選擇在 Next 語句中指定 counter。這將提高程式的可讀性,尤其是在具有嵌套的 For 循環的情況下。必須指定與相應的 For 語句中出現的變數相同的變數。
- 將控制轉移到循環外。Exit 語句 (Visual Basic) 將控制立即轉移到 Next 語句後面的語句。如果檢測到使繼續疊代不必要或不可能的條件(如錯誤值或終止請求),則可能需要退出循環。而且,如果在 Try...Catch...Finally 中捕獲異常,則可以在 Finally 塊的結尾使用 Exit For。
可以在 For 循環中的任何位置插入任意數量的 Exit For 語句。Exit For 通常在計算特定條件後使用,例如在 If...Then...Else 結構中。 - 無限循環。Exit For 的一種用途是測試可能導致“無限循環”(即運行次數非常多甚至無限的循環)的條件。如果檢測到這樣的條件,就可以使用 Exit For 退出循環。有關更多信息,請參見 Do...Loop 語句 (Visual Basic)。
行為
- 進入循環。當開始執行 For...Next 循環時,Visual Basic 將計算start、end 和 step(僅此一次)。然後將 start 賦予 counter。運行語句塊之前,它先將 counter 與 end 進行比較。如果 counter 已經超過了結束值,則 For 循環終止,並且控制將傳遞給 Next 語句後面的語句。否則,將運行語句塊。
- 循環的疊代。每次 Visual Basic 遇到 Next 語句時,都按 step 遞增 counter,然後返回到 For 語句。它再次將 counter 與 end 進行比較,並再次根據結果運行塊或者終止循環。這一過程將一直持續下去,直到 counter 傳遞 end 或者遇到 Exit For 語句為止。
- 循環的終止。在 counter 傳遞 end 之後,循環才會終止。如果 counter 等於 end,則循環繼續。如果 step 為正數,確定是否運行循環代碼塊的比較運算將為 counter <= end;如果 step 為負數,則為 counter >= end。
- 更改疊代值。如果在循環內更改 counter 的值,將會使代碼的閱讀和調試變得更加困難。更改 start、end 或 step 的值不會影響首次進入循環時所確定的疊代值。
示例
Dimwords,digitAsIntegerDimthisStringAsString=""Forwords=10To1Step-1Fordigit=0To9thisString&=CStr(digit)NextdigitthisString&=""Nextwords