STEP(程式設計)

將一組語句重複執行指定的次數的程式。

基本介紹

各部分說明,用法,備註,規則,行為,示例,

各部分說明

  • 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]

備註

當需要將一組語句重複執行設定好的次數時,請使用 For...Next 結構。
當事先不知道需要執行多少次循環中的語句時,While...End While 語句 (Visual Basic) 或 Do...Loop 語句 (Visual Basic) 循環可很好地發揮作用。但是,如果您希望讓循環運行特定次數,則 For...Next 是較好的選擇。您需要在第一次輸入循環時確定疊代次數。
step 的值可以是正數或負數。它將按以下方式決定循環處理過程:
Step 值循環執行的條件
正數或零
counter <= end
負數
counter >= end
如果沒有指定,則 step 的默認值為 1。

規則

  • 數據類型。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 語句,後遇到內部嵌套級別的 Next 語句,編譯器將發出錯誤信號。不過,僅當在所有 Next 語句中都指定了 counter 時,編譯器才能檢測到這種重疊錯誤。
  • 標識控制變數。可以選擇在 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 的值不會影響首次進入循環時所確定的疊代值。

示例

下面的示例演示了不同 Step 值情況下的 For...Next 嵌套結構。
Dimwords,digitAsIntegerDimthisStringAsString=""Forwords=10To1Step-1Fordigit=0To9thisString&=CStr(digit)NextdigitthisString&=""Nextwords
前面的示例創建了一個字元串,該字元串包含 10 個從 0 到 9 的數字,各數字之間用一個空格隔開。每循環一次,外部循環都使循環計數器變數遞減一次。

相關詞條

熱門詞條

聯絡我們