PL/SQL FOR 循环

2024年12月9日 | 5 分钟阅读

引言

当您想执行一组语句固定次数时,使用 PL/SQL for 循环。 循环在开始和结束整数值之间迭代。 计数器总是递增 1,一旦计数器达到结束整数的值,循环结束。

for 循环的语法

在上述语法中

  • initial_value : 开始整数值
  • final_value : 结束整数值

FOR 循环的工作原理

FOR 循环在一个定义的整数范围内迭代。 该范围由关键字 FOR 和 LOOP 括起来,并且在首次进入 FOR 循环时进行评估,并且永远不会再次评估。 双点充当范围分隔符。 initial_value 和 final_value 的值可以是文字、变量或表达式,但必须计算为整数。

PL/SQL FOR Loop

每次执行循环语句后,循环索引都会检查循环计数器的值。 如果 initial_value 大于 final_value,则循环继续循环,当它超过 final_value 时,循环停止

PL/SQL For 循环示例 1

编写一个程序来打印从整数 k = 1 到 10 的数字序列。

解释:在执行上述代码时,k 的值每次进入循环时都会递增 1,并在 k < =10 时退出。

输出

在执行以上代码后,您将得到以下结果

1
2
3
4
5
6
7
8
9
10

PL/SQL For 循环示例 2

输出

10
20
30
40
50
60
70
80
90
100

PL/SQL For 循环 REVERSE

关键字 REVERSE 的使用是可选的。 默认情况下,迭代通过将计数器递增 1 从 initial_value 向上移动到 final_value。 但是,如果使用 REVERSE 关键字,则迭代从 final_value 向下移动到 initial_value,并且循环索引递减 1。

for 循环的语法

示例 1

让我们看一个 PL/SQL for 循环的示例,其中我们使用 REVERSE 关键字。

输出

100
90
80
70
60
50
40
30
20
10

在 PL/SQL 中使用 FOR LOOP 编写代码的指南

使用 PL/SQL WHILE 循环时,应遵循以下步骤。

  • 您不需要显式声明计数器变量,该变量在声明部分中隐式声明。 变量范围在循环本身内。

执行时,它将生成一条错误消息,因为计数器变量 k 在 FOR LOOP 语句之外被引用。

  • 永远不要从循环中更改计数器变量或范围限制的值。 这将导致错误。

执行时,它将生成一条错误消息。

  • initial_value 和 final_value 变量的值可以是文字、变量或表达式,但必须计算为整数。

执行时,它将生成一条错误消息“循环索引变量 'c' 的使用无效”。

  • 计数器变量递增 1,不需要显式递增。 因此,如果您想指定不同的递增或递减值,您将必须为其编写代码。

执行时,它将打印 1 到 20 范围内的 2 的倍数。

  • 当循环开始时,范围中使用的表达式只计算一次。 在循环执行期间不会重新评估。 如果您更改用于在 FOR LOOP 中指定的变量,则更改将不起作用。

执行时,它将打印 1 到 10 的值,并且在 LOOP 语句中稍后对变量 a 和 b 的值所做的更改将不起作用。

  • 您仍然必须通过使用关键字 reverse 来确保范围规范中的 initial_value 小于 final_value。 如果 FOR LOOP 中指定的 initial_value 和 final_value 相等,则其中包含的语句序列将仅执行一次。
  • EXIT 和 EXIT WHEN 语句允许 FOR LOOP 在满足指定条件时完成。 每当循环遇到 EXIT 和 EXIT WHEN 语句时,它就会停止执行循环并将控制转移到循环之后的下一个可执行语句。

执行时,它将在 (i  > 4) 成立之前执行 FOR LOOP 中的语句。

PL/SQL 嵌套 FOR 循环

当在一个循环内定义一个循环时,它被称为循环嵌套。 在此,一个循环可以完全嵌套在另一个循环内,不能有重叠。 每个循环应由不同的索引控制。

嵌套 for 循环的语法如下

嵌套 for 循环的示例

输出

以下是示例的输出

PL/SQL NESTED FOR LOOP EXECUTION
12345
12345
12345
12345
12345

下一个主题PL/SQL Continue