While ループは、決まったステートメント ブロックを不定数回実行する場合に使用できます。
ループの形式 | 説明 | 例 |
---|---|---|
While ...Do | While ...Do Loop は、条件(condition)を評価し、条件が真の場合は、Do に続く式(expression)を評価します。
その評価が完了すると、条件が再び評価され、条件が真の場合は、再び Do に続く式が評価されます。 条件が偽となるまで、この処理が繰り返されます。 |
While 条件 Doexpression |
Do ...While | Do ...While Loop は、条件(condition)を評価する前に、式(expression)を必ず 1 回評価します。
次に条件が評価され、条件が真の場合は、式が再び評価されます。条件が偽となるまで、この処理が繰り返されます。 |
Doexpression While 条件 |
注 While ループは、ループから直ちに抜けるための Exit While ステートメントをサポートしています。Exit While の使い方は、For ループの中の Exit For と似ています。For ループと同様に、While ループを 1 つの式として見た場合、これは常に論理値型の値 True を返します。
While ...Do ループの例
次の例では、入力文字列内に現れる最初の数字を検索します。数字が見つかった場合はその位置を返し、見つからなかった場合は -1 を返します。この例の場合、入力文字列には明示的に文字列定数が設定されていますが、文字列型のデータベース フィールドを代入することもできます。
この例では、入力文字列 "The 7 Dwarves" に対して、式は 5 を返します。これは数字 7 の位置です。
Local StringVar inString := "The 7 Dwarves"; Local NumberVar strLen := Length (inString); Local NumberVar result := -1; Local NumberVar i := 1; While i <= strLen And result = -1 Do ( Local StringVar c := inString [i]; If NumericText (c) Then result := i; i := i + 1; ); result