PL/SQL提供了丰富的循环结构来重复执行一些列语句。Oracle提供的循环类型有:
1. 无条件循环LOOP-END LOOP语句
2. WHILE循环语句
3. FOR循环语句
在上面的三类循环中EXIT用来强制结束循环。
Ø — LOOP循环
LOOP循环是最简单的循环,也称为无限循环,LOOP和END LOOP是关键字。
语法格式:LOOP循环
| LOOP —循环体 END LOOP; |
|---|
语法格式:
1. 循环体在LOOP和END LOOP之间,在每个LOOP循环体中,首先执行循环体中的语句序列,执行完后再重新开始执行。
2. 在LOOP循环中可以使用EXIT或者[EXIT WHEN 条件]的形式终止循环。否则该循环就是死循环。
【例】执行1+2+3+…+100的值
代码演示:LOOP循环
DECLARECOUNTER NUMBER(3):=0;SUMRESULT NUMBER:=0;BEGINLOOPCOUNTER := COUNTER +1;SUMRESULT := SUMRESULT + COUNTER;IF COUNTER >=100THEN --①EXIT;END IF;-- EXIT WHEN COUNTER>=100; ②END LOOP;DBMS_OUTPUT.PUT_LINE('RESULT IS :'|| TO_CHAR(SUMRESULT));END;
代码解析:
① LOOP循环中可以使用IF结构嵌套EXIT关键字退出循环
② 注释行,该行可以代替①中的循环结构,WHEN后面的条件成立时跳出循环。
Ø — WHILE循环
先判断条件,条件成立再执行循环体。
语法格式:WHILE循环
| WHILE 条件 LOOP —循环体 END LOOP; |
|---|
代码演示:WHILE循环
DECLARECOUNTER NUMBER(3):=0;SUMRESULT NUMBER:=0;BEGINWHILE COUNTER <100LOOPCOUNTER := COUNTER +1;SUMRESULT := SUMRESULT + COUNTER;END LOOP;DBMS_OUTPUT.PUT_LINE('RESULT IS :'|| SUMRESULT);END;
Ø — FOR循环
FOR循环需要预先确定的循环次数,可通过给循环变量指定下限和上限来确定循环运行的次数,然后循环变量在每次循环中递增(或者递减)。FOR循环的语法是:
语法格式:FOR循环
| FOR 循环变量 IN [REVERSE] 循环下限..循环上限 LOOP LOOP —循环体 END LOOP; |
|---|
语法解析:
循环变量:该变量的值每次循环根据上下限的REVERSE关键字进行加1或者减1。
REVERSE:指明循环从上限向下限依次循环。
代码演示:FOR循环
DECLARECOUNTER NUMBER(3):=0;SUMRESULT NUMBER:=0;BEGINFOR COUNTER IN1 .. 100LOOPSUMRESULT := SUMRESULT + COUNTER;END LOOP;DBMS_OUTPUT.PUT_LINE('RESULT IS :'|| SUMRESULT);END;
