Oracle PL/SQL FOR LOOPと例

Forループとは何ですか?

「FOR LOOP」ステートメントは、他の条件に基づくのではなく、既知の回数だけコードを実行する場合に最適です。

このループでは下限値と上限値を指定し、ループ変数がこの範囲内にある限りループが実行されます。

ループ変数は自己増分なので、このループでは明示的な増分操作は必要ありません。ループ変数は暗黙的に宣言されるため、宣言する必要はありません。

FOR <loop_variable> in <lower_limit> .. <higher_limit> 
LOOP
<execution block starts>
.
.
.
<execution_block_ends>
 END LOOP;

構文の説明:

  • 上記の構文では、キーワード「FOR」はループの始まりを示し、「END LOOP」はループの終わりを示します。
  • ループ変数は、実行部分を実行する前に毎回評価されます。
  • 実行ブロックには、実行する必要があるすべてのコードが含まれています。 実行部分には、任意の実行ステートメントを含めることができます。
  • ループ変数はループ全体の実行中に暗黙的に宣言され、このループ変数のスコープはこのループ内のみになります。
  • ループ変数が範囲外になった場合、制御はループから抜けます。
  • lower_limit の前にキーワード「REVERSE」を追加することで、ループを逆の順序で動作させることができます。

: この例では、FOR ループ ステートメントを使用して 1 から 5 までの数字を出力します。そのためには、次のコードを実行します。

Oracle PL/SQL FOR ループ

BEGIN
dbms Qutput.put linef.Prp.gram started.' );
FOR a IN 1 .. 5
LOOP
dbms_output.put_line(a);
END LOOP:
dbms_output.put_iine('Program completed.'); 
END;
/

コードの説明:

  • コード行 2: 「プログラムが開始されました」というメッセージを出力します。
  • コード行 3: キーワード「FOR」はループの開始をマークし、loop_variable「a」が宣言されます。 1 から 5 までの値が入ります。
  • コード行 5: 「a」の値を出力します。
  • コード行 6: キーワード「END LOOP」は、実行ブロックの終わりを示します。
  • 条件が失敗し、コントロールがループから終了するため、行 5 からのコードは「a」が値 6 に達するまで実行され続けます。
  • コード行 7: 「プログラムが完了しました」というメッセージを印刷する

ネストされたループ

ループ ステートメントはネストすることもできます。 外側のループと内側のループは異なるタイプにすることができます。 ネストされたループでは、外側のループの XNUMX つの反復値ごとに、内側のループが完全に実行されます。

ネストされたループ

LOOP -outer
<execution block starts>
LOOP — inner
<execution_part> 
END LOOP; 
<execution_block_ends> 
END LOOP;

構文の説明:

  • 上記の構文では、外側のループの内側にもう XNUMX つのループがあります。
  • ループは任意のタイプにすることができ、実行機能部分は同じです。

: この例では、FOR ループ ステートメントを使用して 1 から 3 までの数字を出力します。各数字は、その値と同じ回数だけ出力されます。そのためには、次のコードを実行します。

ネストされたループ

ネストされたループ

DECLARE 
b NUMBER;
BEGIN
dbms output put line(‘Program started' );
FOR a IN 1..3 
LOOP
b:=1;
WHILE (a>=b)
LOOP
dbms output put line(a);
b:=b+1;
END LOOP;‭	
END LOOP;‭	‬
dbms_output.put_line('Program completed' );
END;
/

コードの説明:

  • コード行 2: 変数 'b' を 'NUMBER' データ型として宣言しています。
  • コード行 4: 「プログラムが開始されました」というメッセージを出力します。
  • コード行 5: キーワード「FOR」はループの開始をマークし、loop_variable「a」が宣言されます。 1 から 3 までの値が入ります。
  • コード行 7: 毎回「b」の値を「1」にリセットします。
  • コード行 8: Inner(インナー) whileループ 条件 a>=b をチェックします。
  • コード行 10: 上記の条件が満たされる限り、「a」の値を出力します。
  • コード行 14: 「プログラムが完了しました」というメッセージを印刷する

まとめ

ループ FOR ループ
終了基準 カウンターが限界に達したら終了
使用法 実行するループ数がわかっている場合に使用すると便利です。