FOR...NEXT

 
語法

        FOR Index = StartValue TO EndValue {STEP StepValue}

        {statements}

        NEXT {Index}

 

操作

        FORNext指令間建立一個可重複的迴圈。

  • Index 一個變數,用來儲存一個以數字表示的值,用來控制迴圈執行的次數。為了程式的清楚起見,建議在NEXT後加一個額外的索引。
  • StartValue 一個定義計數器起始值的常數或變數。
  • EndValue 一個定義計數器結束值的常數或變數。如果計數器值超出這個值,程式會在下一次執行到NEXT指令時跳出 FOR/Next迴圈然後執行NEXT的下一個指令。
  • StepValue 常數或變數,用來定義每次迴圈執行時所要增加的索引值。如果沒有使用STEP指令,則預設值1會被使用。
  • Statements 額外的合法敘述,包含EXIT FORCONTINUE指令。

 

說明

        如果一個程式要做一些已知次數的循環,則可使用 FOR...NEXT述, 你可以利用一個迴圈變數的增加或減少來做循環控制。 FOR...NEXT敘述需有一個迴圈變數、一個起始值、一個結束值和一個間距值。程式在v之後將以起始值代入迴圈變數開始執行,以後每執行一次程式段,變數值就以STEP後面的間距值增加或減少,直到變數值等於結束值才離開程式迴圈去執行NEXT之後的敘述。如果是要控制變數增加的迴圈,則STEP值必須是正數,而且結束值不可以小於起始值;相反的,如果是要控制變數減少的迴圈,則STEP值必須是負數,而且結束值不可以大於起始值,如果計數方向錯誤,則程式將不會執行。以下為FOR...NEXT的流程圖。

 

        請注意不同型態變數的值域範圍。例如Short變數的值域為-128到+127, Byte變數的值域為0到+255。控制迴圈的變數須先宣告,且須為基本的數字型態(ByteShortWordIntegerDWordLong 等)。


範例

 

Sub Main()
   
Dim Index As Byte
   
Dim Sum As Byte
   
    Sum=
0
   
   
For Index=1 To 10 Step 1
        Sum += Index
   
Next
   
   
Debug "1+2+...+10=", Sum
End Sub


        FOR...NEXT迴圈控制變數不可以做為其內部嵌入的FOR...NEXT圈控制變數。NEXT敘述永遠與其內圍的尚未配對的FOR敘述配對。除非為了方便程式閱讀,通常位於NEXT之後的迴圈控制變數名稱可以省略。但是如果標示出NEXT之後的迴圈控制變數名稱,但卻沒有正確配對,則會於編譯時產生錯誤訊息。你可以使用關鍵字EXIT FOR跳出FOR...NEXT迴圈,但不建議從迴圈外直接跳入迴圈,這樣可能會造成迴圈控制錯誤。
 
 
如需詳細說明,請參考InnoBasic程式語言介紹裡的程式控制流程敘述