ヘッダーをスキップ
Oracle OLAP DMLリファレンス
11g リリース1(11.1)
E05732-02
  目次へ
目次
索引へ
索引

戻る
戻る
 
次へ
次へ
 

WHILE

WHILEコマンドは、ブール式が返す値がTRUEの間、文を繰り返し実行するコマンドです。WHILEは、プログラムの内部でのみ使用できます。

構文

WHILE boolean-expression

    statement block

引数

boolean-expression

文を実行するための条件として機能します。この式の戻り値がTRUEの間、文は繰り返し実行されます。この式の戻り値がFALSEになると、statementの実行は終了し、プログラムは引き続き次の行の実行に移ります。特定の文(または複数の文)の記述によって、ブール式が最終的にはFALSEになるようにしてください。そうしないと、このコードは無限ループになります。

statement block

ブール式がTRUEの間に実行される1つ以上の文。DO ... DOENDの間に文を記述することにより、複数の文を実行できます。DO文はWHILE文の直後に記述する必要があります。

注意

WHILEとIFとの比較

WHILE文は、主にIF...THEN...ELSEコマンドのかわりに使用されます。ブール式の戻り値がTRUEであるかぎりプログラム内の文を1つ以上繰り返し実行する場合は、WHILEを使用します。ブール式がTRUEのときに一度のみ実行する場合は、IFを使用します。

ブール定数

ブール式には定数を指定できます。文がWHILE TRUEの場合は、プログラムがループを終了できるように、DO ... DOENDの間にBREAK、RETURNまたはEXIT文を必ず記述してください。

ループ内での分岐

BREAK、CONTINUE、GOTOの各コマンドを使用すると、WHILEループの内部または外部に分岐し、それによって文の実行順序を変更できます。

例10-173 プログラム内でのWHILEループの使用

次のプログラム行では、DOの後の文は、ブール式count LT 10TRUEであるかぎり実行されます。ループの内部で、このコードはある条件のインスタンスを検索し、見つかるとcount1を追加します。count10に到達すると、ループは終了します。ループ内のコードでは、countがいつかは必ず10になるようにします。そうしないと、ループは永遠に終了しません。

WHILE count LT 10
   DO
    ..." (statements)
    IF ....
      count = count + 1
   DOEND