1.loop循环:
declare --声明一个变量v_n和一个v_n和的变量v_sum并赋值为0
v_n number(10) := 0;
v_sum number(10) := 0;
begin
loop --开始循环,v_n递增2,v_sum为之前的和加当前v_n的值
v_n := v_n + 2;
v_sum := v_sum + v_n;
exit when v_n >= 100; --当v_n的值大于等于100时退出循环(此时v_n=100,v_sum已经为2550了)
end loop; --结束循环,输出v_sum的值,即2550
dbms_output.put_line(v_sum);
end;
2.while循环:
declare
v_n number(10) := 0; --同上,声明v_n和v_sum两个变量
v_sum number(10) := 0;
begin
while v_n < 100 loop --while的循环条件是写可执行的部分,v_n和v_sum递增规律同上
v_n := v_n + 2;
v_sum := v_sum + v_n;
end loop; --此时v_n=100,v_sum=2550,结束循环,输出v_sum的值
dbms_output.put_line(v_sum);
end;
3.for循环:
declare
v_sum number(10) := 0; --只声明v_sum一个变量和的值
begin
for i in 1 .. 100 loop --循环输出1-100之间的数
if mod(i, 2) = 0 then --判断这个数i是不是偶数,是则参与循环,不是则不参与
v_sum := v_sum + i; --v_sum为之前符合条件的i的值的和加此时符合条件的i的值
end if;
end loop; --此时i循环到100结束循环,输出此时v_sum的值为2550
dbms_output.put_line(v_sum);
end;
4.goto循环:
declare --声明两个变量
v_n number(10) := 0;
v_sum number(10) := 0;
begin
<<aa>> --开始循环,<<aa>>为标签,两个变量递增规律同上
v_n := v_n + 2;
v_sum := v_sum + v_n;
if v_n < 100 then --判断v_n是否还符合条件,成立则返回标签继续执行,不成立结束判断和循环
goto aa;
end if;
dbms_output.put_line(v_sum); --输出此时的v_n=100,v_sum=2550
end;