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”标记循环的结束。
  • 每次执行执行部分之前都会对循环变量进行评估。
  • 执行块包含所有需要执行的代码。执行部分可以包含任何执行语句。
  • loop_variable 在整个循环执行过程中被隐式声明,并且这个 loop_variable 的作用域只会在本次循环内部。
  • 如果循环变量超出范围,则控制将退出循环。
  • 通过在 lower_limit 之前添加关键字“REVERSE”,可以使循环以相反的顺序工作。

例子1:在此示例中,我们将使用 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”标记循环的开始,并声明循环变量“a”。现在它的值从 1 到 5
  • 代码第 5 行: 打印“a”的值。
  • 代码第 6 行: 关键字“END LOOP”标记执行块的结束。
  • 第 5 行的代码将继续执行,直到“a”达到值 6,因为条件将失败,并且控制将从循环中退出。
  • 代码第 7 行: 打印“程序完成”声明

嵌套循环

循环语句也可以嵌套。外循环和内循环可以是不同类型的。在嵌套循环中,对于外循环的每一个迭代值,内循环都会完全执行。

嵌套循环

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

语法解释:

  • 在上面的语法中,外层循环内部还有一个循环。
  • 循环可以是任意类型,并且执行功能部分是相同的。

例子1:在此示例中,我们将使用 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”标记循环的开始,并声明循环变量“a”。现在它的值从 1 到 3
  • 代码第 7 行: 每次将“b”的值重置为“1”。
  • 代码第 8 行: while循环 检查条件 a>=b。
  • 代码第 10 行: 只要满足上述条件就打印“a”的值。
  • 代码第 14 行: 打印“程序完成”声明

总结

循环 FOR 循环
退出标准 当计数器达到限制时退出
用法 当知道要执行的循环计数时很适合使用。