While...End whileによる制御フロー構造の正式な構文は以下のようになります。
While(Boolean_Expression)
statement
End while
While...End whileループは、ブール式がTRUEである限り、ループ内のステートメントを実行し続けます。ループのはじめにブール式を評価し、ブール式がFALSEの場合にはループを行いません。
一般に、While...End whileループに入る手前で、ブール式で判定する値を初期化しておきます。通常はブール式がTRUEになるように設定してからループに入ります。
ブール式はループの中で設定されなければなりません。そうでなければ、ループは永久に続くでしょう。
以下の例では、NeverStopがいつもTRUEであるので、ループは永久に続きます。
NeverStop:=True
While(NeverStop)
End whileもし、メソッドの実行が制御不能になった場合は、トレース機能を使用し、ループを止め、問題点を追跡することができます。メソッドのトレース方法については、の章を見てください。
CONFIRM("新規にレコード追加しますか?")
While(OK=1)
ADD RECORD([aTable])
End while この例では、ループに入る前にCONFIRM コマンドによりシステム変数OKがセットされます。ユーザがダイアログボックスで「OK」ボタンをクリックすると、システム変数OKに1がセットされ、ループを開始します。それ以外の場合はシステム変数OKに0が設定され、ループをスキップします。ループに入ると、ADD RECORD コマンドはループを続けます。
これは、ユーザがレコードを保存した時点で、システム変数OKに1が設定されるからです。ユーザが最後のレコードを取り消した(保存しない)時点で、システム変数OKに0がセットされ、ループは終了します。