购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.5.1 基本循环语句

使用LOOP、EXIT、CONTINUE、WHILE、FOR和FOREACH语句,可以使PL/SQL函数重复执行一系列命令。

(1)LOOP。

语法格式如下。

说明如下。

①LOOP定义一个无条件的循环,它会无限重复,直到被EXIT或RETURN语句终止。

②可选的label可以被EXIT和CONTINUE语句用在嵌套循环中,指定这些语句引用的是哪一层循环。

(2)EXIT。

语法格式如下。

说明如下。

①如果没有给出label,那么最内层的循环会被终止,然后END LOOP后面的语句会被执行。如果给出了label,那么它必须是当前或更高层的嵌套循环或语句块的标签。然后该命名循环或块就会被终止,并且控制会转移到该循环/块相应的END之后的语句上。

②如果指定了WHEN,只有boolean-expression为true时才会发生循环退出。否则,控制会转移到EXIT之后的语句。

③EXIT可以被用在所有类型的循环中,它并不限于在无条件循环中使用。

④在和BEGIN块一起使用时,EXIT会把控制权交给块结束后的下一个语句。

(3)CONTINUE。

语法格式如下。

说明如下。

①如果没有给出label,最内层循环的下一次迭代会开始,即循环体中剩余的所有语句将被跳过,并且控制返回到循环控制表达式(如果有),以决定是否需要另一次循环迭代。如果label存在,它指定应该继续执行的循环标签。

②如果指定了WHEN,该循环的下一次迭代只有在boolean-expression为真时才会开始。否则,控制会传递给CONTINUE后面的语句。

③CONTINUE可以被用在所有类型的循环中,它并不限于在无条件循环中使用。

(4)WHILE。

语法格式如下。

说明如下。

只要boolean-expression被计算为true,WHILE语句就会重复一个语句序列。每次进入到循环体之前都会检查该表达式。

(5)FOR。

语法格式如下。

说明如下。

①FOR循环在给定整数范围内迭代。

②变量name自动定义为类型integer,并且只在循环内存在(任何该变量名的现有定义在此循环内都将被忽略)。

③给出范围上下界的两个表达式在进入循环的时候计算一次。

④如果下界大于上界(或在REVERSE情况下相反),循环体根本不会被执行。而且不会抛出任何错误。

⑤如果没有指定BY子句,迭代步长为1,否则步长是BY中指定的值,该值也只在循环进入时计算一次。

⑥如果指定了REVERSE,那么每次迭代后步长值会被减除,而不是增加。

⑦如果一个label被附加到FOR循环,那么整数循环变量可以用label的限定名引用。

示例2.13: 使用while loop、continue语句和exit语句输出11~19,跳过15,当等于19时跳出循环。

程序代码如下。

程序运行结果如下。 4uPAvK9Az+I5MLiBbk6W7+eSmZ/4hMKNuSV9HmcyRDS1rs4P2gvpGGZKakopVXUP

点击中间区域
呼出菜单
上一章
目录
下一章
×