ORACLED中的循环控制语句(LOOP)

2025-10-05 09:36:03

1、语法:

[ <<lable_name>>]

loop

  statement...

end loop [lable_name]

ORACLED中的循环控制语句(LOOP)

2、注释:lable_name:loop语句的标签,与结构控制语句case类似

loop:循环的开始

statement:循环体,也就是需要重复执行的语句

end loop:循环结束标志

基本loop循环由于没有控制循环结束语句,所以循环体中需要判断是否循环结束来控制循环,要不然会出现死循环的情况

ORACLED中的循环控制语句(LOOP)

3、一、使用EXIT...WHEN来判断是否循环结束

例:求1+2+..+100的和

DECLARE

  str1 number;

  nu   number;

BEGIN

  str1 := 1 ;

  nu := 0 ;

   <<loop_text>>

 LOOP

   nu := nu + str1;

   str1 := str1+1;

   EXIT loop_text WHEN str1>100 ;

 END LOOP;

  DBMS_OUTPUT.PUT_LINE('循环结束。1+2+。。。+100的结果为:'||nu);

END;

ORACLED中的循环控制语句(LOOP)

4、代码解析:

第2--6行:声明两个加数并赋予初始值

第9--10:循环体,做四则运算,加数nu + 加数str1 的和在赋值给加数nu

第11行:判断str1是否为真,为真则退出,为假则继续循环

第13行:循环结束后打印输出结果

ORACLED中的循环控制语句(LOOP)

5、二、使用IF语句来判断是否循环结束

例:求1+2+..+100的和

DECLARE

  str1 number; 

  nu   number; 

BEGIN

  str1 := 1 ;

  nu := 0 ;    

   <<loop_text>>  

 LOOP         

   nu := nu + str1;    

   str1 := str1+1;     

   IF str1>100 THEN

     DBMS_OUTPUT.PUT_LINE('循环结束');

     EXIT loop_text;

   END IF;    

 END LOOP;    

  DBMS_OUTPUT.PUT_LINE('1+2+。。。+100的结果为:'||nu);  

END;

ORACLED中的循环控制语句(LOOP)

6、代码解析:

第1-6行与上诉一致,声明两个参数然后在赋值初始化

第11-13行:使用IF语句做判断,条件为真这执行退出语句EXIT,条件为假则跳过继续循环

ORACLED中的循环控制语句(LOOP)

1、WHILE..LOOP循环语句自身可以控制结束循环,就不需要在循环体中通过判断来结束循环,基本语法为:

[ <<lable_name>> ]

WHILE boolean_expression

loop

  statement....

end loop [lable_name] ;

注释:boolean_expression为一个布尔类型的值,当boolean_expression为真时执行loop语句,当boolean_expression为假时,则跳过当前的loop循环

ORACLED中的循环控制语句(LOOP)

2、例:求1+2+..+100的和

DECLARE

  str1 number; 

  nu   number; 

BEGIN

  str1 := 1 ;

  nu := 0 ;      

   <<loop_text>>  

WHILE str1<=100

 LOOP         

   nu := nu + str1;    

   str1 := str1+1;        

 END LOOP;    

  DBMS_OUTPUT.PUT_LINE('结束循环,1+2+。。。+100的结果为:'||nu);  

END;

ORACLED中的循环控制语句(LOOP)

3、注释:

第1-6行与上诉一致,声明两个参数然后在赋值初始化

第8行:判断str1<=100是否为真,当str1为1.。100时,都小于等于100,所以为真则执行loop循环

第9-12行:循环体

ORACLED中的循环控制语句(LOOP)

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢