存储过程——FOR循环

本文详细介绍了PL/SQL中的三种循环类型:简单循环、WHILE循环和FOR循环。简单循环在显式结束条件满足前持续运行,WHILE循环在特定条件满足前执行,FOR循环则预设运行次数。通过示例展示了如何使用EXIT和EXITWHEN语句控制循环,并提供了自然数求和的代码示例。
摘要由CSDN通过智能技术生成

循环可以对语句运行零次或多次。在PL/SQL中有3种类型的循环:
简单循环 直到显式结束循环之前一直运行。
WHILE循环 直到某个特定条件出现之前一直运行。
FOR循环 运行预先确定的次数。
简单循环
简单循环在显式结束之前会一直运行。简单循环的语法如下:

LOOP
	statements
END LOOP;

要结束简单循环,可以使用EXIT或EXIT WHEN语句。EXIT语句立即结束循环,EXIT WHEN语句在指定条件出现时结束循环。
变量v_counter在循环开始之前被初始化为0,每次循环给v_counter加1.EXIT WHEN语句表示,当v_counter等于5时循环结束。

v_counter := 0;
LOOP
	v_counter := v_counter + 1;
	EXIT WHEN v_counter = 5;
END LOOP;

EXIT WHEN 语句可以出现在循环代码中的任何位置。
1.4.2 WHILE循环
WHILE循环在某个特定条件出现之前一直运行。WHILE循环的语法如下:

WHILE condition LOOP
	statements
END LOOP;

当v_counter变量小于6时WHILE循环会一直执行:

v_counter := 0;
WHILE v_counter < 6 LOOP
	v_counter := v_counter + 1;
END LOOP;

FOR循环
FOR循环会运行预先确定的次数,可通过给循环变量指定下限和上限来确定循环运行的次数,然后,循环变量在每次循环中递增(或在反向循环中递减)。FOR循环的语法如下:

FOR loop_variable IN [REVERSE] lower_bound .. upper_bound LOOP
	statements
END LOOP;

loop_variable指定循环变量。可以将已经存在的变量用作循环变量,也可以让循环语句自己创建循环变量。循环变量的值在每一次循环中都增加1。
REVERSE指定在每一次循环中循环变量都会递减。循环变量先被初始化为其上限,然后在每一次循环中递减1,直至达到其下限。下限依然要在上限之前定义。
lower_bound指定循环的下限。在没有使用REVERSE的情况下,循环变量初始化为这个下限值。
upper_bound指定循环的上限。如果使用REVERSE,循环变量初始化为这个下限。
举个栗子

FOR v_counter2 IN 1..5 LOOP
	DBMS_OUTPUT.PUT_LINE(v_counter2);
END LOOP; 

下面这个栗子使用了REVERSE

FOR v_counter2 IN REVERSE 1..5 LOOP
	DBMS_OUTPUT.PUT_LINE(v_counter2);
END LOOP; 

for循环 自然数求和1…100

declare 
v_a   number :=0;
v_sum number :=0;
begin
   for i in 1..100   loop
       v_a := v_a +1;--每循环一次加一
       v_sum := v_sum + v_a;
       dbms_output.put_line(v_a ||' ' || v_sum);
    end loop;
    dbms_output.put_line('自然数求和1..100的结果是:' || v_sum);
  end;

简化

declare 
v_sum number :=0;
begin
   for i in 1..100   loop
       v_sum := v_sum + i;
       dbms_output.put_line(i);
    end loop;
    dbms_output.put_line('自然数求和1..100的结果是:' || v_sum);
  end;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值