主要是讲loop,while,for三种循环
一.Loop
1.带有exit when 的简单循环
语法:
Loop
//执行语句
Exit when condition;
End loop;
示例:
declare
V_loop int := 1;
begin
loop
exit when V_loop >= 6;
dbms_output.put_line('天空飘来' || V_loop || '个字,那都不是事儿');
V_loop := V_loop + 1;
end loop;
2.带有continue的简单循环
语法:
Loop
//执行语句
If continue_condition then continue; end if;
Exit when condition;
End loop;
示例:
declare
V_loop int := 0;
begin
loop
V_loop := V_loop + 1;
if mod(V_loop, 2) = 0 then
continue;
end if;
exit when V_loop >= 6;
dbms_output.put_line('天空飘来' || V_loop || '个字,那都不是事儿');
end loop;
end;
3.带有continue when 的简单循环语句
Loop
//执行语句
continue when Icontinue_condition;
Exit when condition;
End loop;
二.While 循环
While condition loop
//语句
End loop;
eclare
V_i int := 0;
V_sum int := 0;
begin
while V_i <= 100 loop
V_i := V_i + 1;
continue when mod(V_i, 2) != 0;
V_sum := V_sum + V_i;
end loop;
dbms_output.put_line('100以内偶数和'||V_sum);
end;
三.数值型for循环
For 循环计数器in [reverse] 最小值..最大值
loop
//执行语句
End loop;
--打印三角形
begin
for i in 1 .. 5 loop
for j in 1 .. i loop
dbms_output.put('*');
end loop;
dbms_output.put_line('');
end loop;
end;
--打印乘法表
begin
for i in 1 .. 9 loop
for j in 1 .. i loop
dbms_output.put(j||'*'||i||'='||j*i||chr(9));
end loop;
dbms_output.put_line('');
end loop;
end;
--打印等腰三角形
begin
for i in 1..5 loop
for j in 1 ..5-i loop
dbms_output.put(' ');
end loop;
for j in 1 ..2*i-1 loop
dbms_output.put('*');
end loop;
dbms_output.put_line('');
end loop;
end;
--打印菱形
begin
--上部分
for i in 1..4 loop
for j in 1 ..4-i loop
dbms_output.put(' ');
end loop;
for j in 1 ..2*i-1 loop
dbms_output.put('*');
end loop;
dbms_output.put_line('');
end loop;
--下部分
for i in reverse 1..4 loop
for j in 1 ..4-i loop
dbms_output.put(' ');
end loop;
for j in 1 ..2*i-1 loop
dbms_output.put('*');
end loop;
dbms_output.put_line('');
end loop;
end;