While...End while

4D - Documentation   French   English   German   Spanish   日本語   4D v11 SQLコマンドテーマリスト   4D v11 SQLインデックス   4D v11 SQL定数テーマリスト   戻る   前   次

version 6.0


While...End while による制御フロー構造の正式な構文は以下のようになります。

   While (ブール式)
      スートメント
   End while

While ループは、ブール式がTRUEである限り、ループ内のステートメントを実行し続けます。ループのはじめにブール式を評価し、ブール式がFALSEの場合にはループを行いません。

一般に、While ループに入る手前で、ブール式で判定する値を初期化しておきます。通常はブール式がTRUEになるように設定してからループに入ります。

ブール式はループの中で設定されなければなりません。そうでなければ、ループは永久に続くでしょう。

以下の例では、NeverStopがいつもTRUEであるので、ループは永久に続きます。

   NeverStop:=True
   While (NeverStop)
   End while

もし、メソッドの実行が制御不能になった場合は、トレース機能を使用し、ループを止め、問題点を追跡することができます。メソッドのトレース方法については、デバッグの章を見てください。

   CONFIRM ("新規にレコード追加しますか?")   ` 利用者に新規レコード追加を問い合わせる
   While (OK = 1)   ` 利用者が望む限りループする
      ADD RECORD ([aTable])   ` 新規にレコードを追加する
   End while   ` ループはいつもEnd_whileによっ終わります

この例では、ループに入る前にCONFIRM コマンドによりシステム変数OKがセットされます。ユーザがダイアログボックスで「OK」ボタンをクリックすると、システム変数OKに1がセットされ、ループを開始します。それ以外の場合はシステム変数OKに0が設定され、ループをスキップします。ループに入ると、ADD RECORD コマンドはループを続けます。

これは、ユーザがレコードを保存した時点で、システム変数OKに1が設定されるからです。ユーザが最後のレコードを取り消した(保存しない)時点で、システム変数OKに0がセットされ、ループは終了します。

参照

Case of...Else...End case, For...End for, If...Else...End if, Repeat...Until, 制御フロー.


4D - Documentation   French   English   German   Spanish   日本語   4D v11 SQLコマンドテーマリスト   4D v11 SQLインデックス   4D v11 SQL定数テーマリスト   戻る   前   次