分支结构:
IF语句: 1. IF语句:
IF 判断条件 THEN
满足条件时执行语句;
END IF ;
2. IF ELSE语句:
IF 判断条件 THEN
满足条件时执行语句;
ELSE
不满足条件时执行语句;
END IF ;
3. IF ELSEIF...ELSE语句:
IF 判断条件1 THEN
满足条件1时执行语句;
ELSE 判断条件2 THEN
满足条件2时执行语句 ;
...
ELSE
不满足条件时执行语句;
END IF ;
循环结构:
case语句:功能与IF ELSEIF...ELSE语句类似
语法如下:case (变量)
when (值,表达式) then
执行语句块;
when (值,表达式) then
执行语句块;
else
不满足条件时执行语句块;
end case;
loop循环:先执行后判断,只是执行一次
loop
循环执行的语句块;
exit when 循环结束条件;-- 也可使用 if 判断条件 then exit end if; 退出循环
循环结束条件修改;
end loop;
如:declare
v_num number := 1;
begin
loop
exit when v_num > 10;
dbms_output.put_line(v_num); --放此处先判断后输出
v_num := v_num + 1;
end loop;
end;
值为:1.2.3.4.5.6.7.8.9.10
declare
v_num number := 1;
begin
loop
dbms_output.put_line(v_num);--放此处先输出后判断
exit when v_num > 10;
v_num := v_num + 1;
end loop;
end;
值为:1.2.3.4.5.6.7.8.9.10.11
declare
v_num number := 1;
begin
loop
if v_num > 10 then
exit;
end if;
dbms_output.put_line(v_num); --放此处先判断后输出
v_num := v_num + 1;
end loop;
end;
while loop循环: 先判断后执行
while (循环结束条件) loop
循环执行的语句块;
循环结束条件修改;
end loop;
如:declare
v_1 number :=1; --赋值,v_1初始值为1
degin
while (v_1>=3) loop --v_1大于等于3后不循环
DBMS_OUTPUT.put_line('v_1=' || v_1);
v_1:=v_1+1; --循环语句,自动加以
end loop;
end;
/
for循环:
for 循环索引 in (reverse)循环区域下限 .. 循环区域上限 loop --reverse翻转循环,递减方式
循环执行的语句块;
end loop;
如:declare
v_1 number :=1; --赋值,v_1初始值为1
degin
for v_1 in 1..3 loop --循环3次
DBMS_OUTPUT.put_line('v_1=' || v_1);
end loop;
end;
/
循环控制:在正常循环的操作之中,如果需要结束循环或者退出当前循环,则可以使用 EXIT 与 CONTINUE语句完成。
一般这两种控制语句都要结合分支语句进行判断
如:declare
v_1 number :=1; --赋值,v_1初始值为1
degin
for v_1 in 1..10 loop --循环10次
if v_1=3 then
EXIT; --当v_1=3的时候结束循环
end if;
DBMS_OUTPUT.put_line('v_1=' || v_1);
end loop;
end;
/
结果为:v_1=1 v_1=2 v_1=3
declare
v_1 number :=1; --赋值,v_1初始值为1
degin
for v_1 in 1..10 loop --循环10次
if v_1=3 then
CONTINUE; --当v_1=3的时候跳过,从4重新开始
end if;
DBMS_OUTPUT.put_line('v_1=' || v_1);
end loop;
end;
/
结果为:v_1=1 v_1=2 v_1=4 v_1=5 v_1=6 v_1=7 v_1=8 v_1=9 v_1=10