PL/SQL的循环结构包括LOOP简单循环、WHILE循环和FOR循环3种。
(1)LOOP简单循环
LOOP简单循环的语法结构如下。
LOOP简单循环自身没有循环条件判断,所以循环体中一定要包含EXIT语句,否则程序将进入死循环。如果EXIT语句使用了WHEN子句,则实现有条件的退出;否则就是无条件地退出。如下示例用于计算10以内的正整数平方和,代码如下:
(2)WHILE循环
WHILE循环在LOOP简单循环的基础上添加了循环条件,即先判断循环条件是否满足,只有满足WHILE循环条件才进入循环体进行操作。WHILE循环的语法结构如下。
用于WHILE循环计算10以内的正整数平方和,代码如下:
(3)FOR循环
FOR循环是一种基于整数型变量的循环,系统自动定义一个循环变量,每次循环时该变量自动减1或加1,以此控制循环的次数。FOR循环的语法结构如下。(www.daowen.com)
其中,REVERSE表示该FOR循环是逆向FOR循环(循环变量自动减1),省略该选项的FOR循环也称为正向FOR循环。
FOR循环中,循环变量为PL/SQL隐含声明的局部变量,它只在循环语句内有效,循环结束后即被释放。所以,用户不必在PL/SQL块的声明区内声明循环变量。如果用户所声明的变量与循环变量同名,则在FOR循环内,循环变量为局部变量,用户变量为全局变量,这时局部变量将隐藏全局变量。循环体内语句需要参照用户变量时,必须使用变量的作用域名称进行限定。
FOR循环隐含声明的循环变量为整数型,所以,循环语句中的下界表达式和上界表达式必须为整数型表达式。
FOR循环的执行流程为:进入FOR循环时,首先计算下界表达式和上界表达式之值,并且在整个循环期间,这两个表达式的值只计算这一次。
对于正向FOR循环,把计算出来的下界表达式的值赋值给循环变量,然后开始第一次循环条件测试,如果循环变量值小于等于上界表达式之值,即循环条件为TRUE时,执行循环语句。执行一次循环后,循环变量的值自动加1,进入下一次循环测试。在进入下一次循环测试时,不再计算下界表达式和上界表达式的值。之后如此循环下去,直至循环条件为FALSE时才结束循环。
对于逆向FOR循环,计算下界表达式和上界表达式之值后,把上界表达式的值赋值给循环变量,然后开始第一次循环条件测试,如果循环变量值大于等于下界表达式之值,即循环条件为TRUE时,执行循环语句,之后,循环变量的值自动减1,进入下一次循环条件测试,如此循环下去,直至循环条件为FALSE时才结束循环。
用于FOR循环计算10以内的正整数平方和,代码如下:
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。