IBM Lotus Symphony
|
For...Next ブロックの間にあるステートメントを、指定回数分だけ繰り返し実行させます。
For counter=start To end [Step step]
ステートメントブロック
[Exit For]
ステートメントブロック
Next [counter]
Counter: ループカウンタとして用いる変数で、等号の右側の値 (start) が初期値として割り当てられます。使用可能なものは、数値変数だけです。ループカウンタの値は、Step の指定値に応じて加算または減算が行われ、End の指定値に到達するかがチェックされます。
Start: ループ開始時における初期値を指定する数値変数。
End: ループ終了時における終了値を指定する数値変数。
Step: ループカウンタの加算幅または減算幅を指定する増分値。Step に値を指定しないと、ループカウンタの増分値は 1 とされます。この場合は、Start の指定値よりも大きな値を、End に指定する必要があります。ループカウンタの値を減算させる場合は、Step に負の値を指定して、Start の指定値よりも小さな値を End に指定する必要があります。
For...Next ループでは、パラメータ群で指定する回数分だけ、ステートメントブロックの全コードが繰り返されます。
カウンタ変数値が減ると、終了値に到達したかを Lotus® Symphony™ Basic がチェックします。カウンタ値が終了値に到達すると、ループは終了します。
For...Next ステートメントは、複数のものをネスト (入れ子化) することができます。Next ステートメントに続けて変数名を指定しない場合、各 Next は一番近くに存在する For ステートメントに対応づけられます。
増分値を 0 とすると、For から Next までの間にあるステートメントブロックが永続的に繰り返し実行され続けます。
カウンタ変数値の増減に対しては、オーバーフローまたはアンダーフローの発生を Lotus Symphony Basic がチェックします。カウンタ変数の値が End の指定値を超過するか (Step に正の値を指定した場合)、End の指定値を下回った (Step に負の値を指定した場合) 段階で、ループは終了します。
Exit For ステートメントを指定すると、ループは無条件に終了させられます。このステートメントは、For...Next ループの内部に記述する必要があります。この場合も、下記の例のように If...Then ステートメントを使って、終了条件を満たしているかの判定が行えます。
For...
ステートメント群
If 終了条件 = True Then Exit For
ステートメント群
次へ
注意: 複数の For...Next ループをネストしている場合、1 つの Exit For ステートメントで無条件に終了できるループは 1 つだけです。
下記の例では、初期設定として各種の名前を代入した要素数 10 の配列 ( sEntry( )) を用意しておき、二重にネストしたループを使って要素の並べ替えを行っています。
Sub ExampleSort
Dim sEntry(9) As String
Dim iCount As Integer
Dim iCount2 As Integer
Dim sTemp As String
sEntry(0) = "Jerry"
sEntry(1) = "Patty"
sEntry(2) = "Kurt"
sEntry(3) = "Thomas"
sEntry(4) = "Michael"
sEntry(5) = "David"
sEntry(6) = "Cathy"
sEntry(7) = "Susie"
sEntry(8) = "Edward"
sEntry(9) = "Christine"
For iCount = 0 To 9
For iCount2 = iCount + 1 To 9
If sEntry(iCount) > sEntry(iCount2) Then
sTemp = sEntry(iCount)
sEntry(iCount) = sEntry(iCount2)
sEntry(iCount2) = sTemp
End If
Next iCount2
Next iCount
For iCount = 0 To 9
Print sEntry(iCount)
Next iCount
End Sub