4D v16.3

While...End while

ホーム

 
4D v16.3
While...End while

While...End while  


 

 

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 ` ループはいつも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
テーマ: プログラミング言語の構成要素

 
履歴 

 
ARTICLE USAGE

ランゲージリファレンス ( 4D v16)
ランゲージリファレンス ( 4D v16.1)
ランゲージリファレンス ( 4D v16.2)
ランゲージリファレンス ( 4D v16.3)