7.1.2 Do...Loop
- 機能
-
指定した条件が真(True)である間,または条件が真(True)になるまで,一連のステートメントを繰り返し実行するフロー制御ステートメントです。
- 形式
Do 〔Statements〕 〔Exit Do〕 〔Statements〕 Loop〔{While | Until} Condition〕
- 指定項目
-
- Statements
-
Conditoinが真(True)である間,またはConditoinが真(True)になるまで繰り返し実行される一つ,または複数のステートメントを指定します。複数のステートメントを記述する場合は,ステートメントごとに改行します。
- Condition
-
真(True),または偽(False)を評価する条件式を指定します。
- 説明
-
キーワードWhileが記述されている間はConditionが真(True)である間,一連のステートメントが繰り返し実行され,キーワードUntilが記述されている場合はConditionが真(True)になるまで,一連のステートメントが繰り返し実行されます。
Exit Doステートメントは,制御構造Do ...Loop内だけで使われ,Conditionで指定した以外の条件でDo ...Loopを終了させることができます。Exit Doステートメントは,Do ...Loop内の任意の場所に何回でも指定できます。Exit Doは条件の評価(例えばIf...Thenステートメントなど)とともに使われることが多く,Loopステートメントの直後のステートメントに制御を渡します。
Do ...Loopステートメントはネスト(入れ子)構造にできます。つまり,Do ...Loopの内部に別のDo ...Loopを記述できます。ネスト構造の場合にExit Doが実行されると,そのExit Doを囲んでいる最も内側のループから抜け出します。
Do ...Loopステートメントは後判定の制御構造で,While...Endステートメントとは異なり,一連のステートメントが必ず一度は実行されます。一連のステートメントが実行される前に条件の判定を行いたい場合は, While...Endステートメントを使用してください。
- 例
' Reverseは文字列を反転した値を返す。 ' resultには"EDCBA"が格納される。 result = Reverse ( "ABCDE" ) MessageBox ( result ) Function Reverse ( chrValue ) Dim chrString ,chrLength cnt = 0 chrLength = Len ( chrValue ) Do chrString = chrString + Mid ( chrValue ,chrLength - cnt , 1 ) cnt = cnt + 1 Loop While ( cnt < chrLength ) Reverse = chrString End Function
- 対象バージョン
-
JP1/Script 05-10以降