Oracle PL/SQL FOR LOOP 示例
什么是 For Loop?
当您想执行一段代码已知次数,而不是基于其他条件时,“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 的数字。为此,我们将执行以下代码。
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 循环 |
---|---|
退出条件 | 计数器达到限制时退出 |
用途 | 当已知循环执行次数时,使用此方法效果很好。 |