(一)、循环学习
(a)、loop 循环
declare
-- 求和变量 i变量 1.。100
v_sum number(5);
v_i number(5);
begin
v_sum :=0;
v_i := 1;
loop
v_sum := v_sum + v_i;
v_i := v_i+1;
exit when v_i>100; --退出条件
end loop;
dbms_output.put_line(v_sum);
(b)、for循环使用
在for循环中,不需要对循环变量(index)进行声明,oracle会默认把它当成binary_integer来使用
-- for 循环 for 变量 in 集合 loop 循环体; end loop;
--变量不需要声明 自动匹配集合内元素的类型 变量 还可以控制循环的次数 不可以被直接赋值
--1..100 数值型集合的固定写法
示例(1)
for v_ii in 1..10 loop
v_sum := v_sum + v_ii;
v_ii := v_ii +1;
end loop;
--示例(2)
for v_ii in 1..5 loop
v_sum := v_sum + v_i;
v_i := v_i +2;
end loop;
dbms_output.put_line(v_sum);
(c)、while 循环使用
示例(3)
-- while 执行的条件 loop 循环体; end loop;
while v_i <=100 loop
v_sum := v_sum + v_i;
v_i := v_i +1;
end loop;
dbms_output.put_line(v_sum);
end;
(二)、三种方法输出乘法表
示例(1)使用loop实现
declare
v_i number(10);
v_j number(10);
begin
v_i := 1;
loop
v_j := 1;
loop
dbms_output.put(v_i||'*'||v_j||'='||v_i*v_j||' ');
v_j := v_j + 1;
exit when v_j > v_i;
end loop;
dbms_output.put_line('');
v_i := v_i + 1;
exit when v_i>9;
end loop;
end;
示例(2)使用for实现
declare
begin
v_d := 1;
for v_i in 1..9 loop
for v_j in 1..v_i loop
dbms_output.put(v_i||'*'||v_j||'='||v_i*v_j||' ');
end loop;
dbms_output.put_line('');
end loop;
end;
示例(3)使用while实现
declare
v_i number(10);
v_j number(10);
begin
v_i := 1;
while v_i < 10 loop
v_j := 1;
while v_j <= v_i loop
dbms_output.put(v_i||'*'||v_j||'='||v_i*v_j||' ');
v_j := v_j + 1;
end loop;
dbms_output.put_line('');
v_i := v_i + 1;
end loop;
end;