Crystal Reports Designer  

While ループ(Crystal 構文)

While ループは、決まったステートメント ブロックを不定数回実行する場合に使用できます。

While ループの 2 つの形式

ループの形式 説明
While ...Do While ...Do Loop は、条件(condition)を評価し、条件が真の場合は、Do に続く式(expression)を評価します。

その評価が完了すると、条件が再び評価され、条件が真の場合は、再び Do に続く式が評価されます。

条件が偽となるまで、この処理が繰り返されます。

While 条件 Do
expression
Do ...While Do ...While Loop は、条件(condition)を評価する前に、式(expression)を必ず 1 回評価します。

次に条件が評価され、条件が真の場合は、式が再び評価されます。条件が偽となるまで、この処理が繰り返されます。

Do
expression
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

参照

無限ループの回避