PL/SQL_循環結構

  PL/SQL的循環結構和別的語言也是大同小異。
在循環結構中可以分為四小類:
1,先循環,再判斷;
2,先判斷,再循環;
3,已知循環次數的循環;
4,無條件轉向;

第一類:先循環,再判斷;
說明:該類循環特點是,先執行一次循環,再去判斷是否繼續循環下去。無論後面的判斷是否為true,循環體總要執行一次。
 
語法:
loop        
circulation statements;    ----循環體;
if conditional then
exit;                      ----退出循環體標志
end loop;
 
loop        
circulation statements;    ----循環體;
exit when conditional;      ----當when後的判斷為真時退出循環體
end loop;
 
示例:
LOOP  ---start loop
  dbms_output.put_line(varient); ------circulation structure
  
  if varient=num then ---------if conditional is true
  exit;               ---------it will execute exit the loop
  end if;
  
   varient:=varient+1;  ----此點注意,要是不加會形成死循環,造成buffer overflow
  
  end loop;  ---end loop
 
LOOP  ---start loop
  dbms_output.put_line(varient); ------circulation structure

  exit when varient=num;
   varient:=varient+1;
  end loop;  ---end loop

第二類:先判斷,再循環;
說明:這類循環特點是,先判斷條件,若為真才執行循環,若為假則跳出循環。
 
語法:
when conditional loop   -----為真時,再執行循環體
circulation statements;  ----循環體;
end loop;
 
示例:
while varient<num LOOP
    dbms_output.put_line(varient);
    varient:=varient+1;
  end loop;  ---end loop

第三類:已知次數的循環;
說明:該類循環最好用在已知次數的循環中,但也不盡然。比如下面語法中的start和end既可以是固定的數字,也可以是變量。比如 for var in 1..5,執行5次,還可以是for var in 1..v_booknum
 
語法:
for var in start..end loop  ----var表示已定義過的變量,從start開始循環至end
circulation statements;   ----循環體;
end loop;
 
示例:
for varient in 0..num loop
  
  dbms_output.put_line(varient); ------circulation structure
  end loop;  ---end loop

第四類:無條件轉向;
說明:該類循環並不常用,也不推薦使用,這種循環很難控制。通常我們都用以上的循環來代替。
 
語法:
<<mark>>           ---設置跳轉的標記
circulation statements;   ---循環體
goto mark;          ---跳轉到上面的mark處
 
 
示例:
<<circuit>>
  dbms_output.put_line(varient); ------circulation structure
  varient:=varient+1;
  if varient<num then ---------if conditional is true
goto circuit;
  end if;

PL/SQL循環語句的注意點:
1,根據實現需要來選擇,是先要判斷,還是先要循環。
2,應注意變量的自增或自增,以防造成死循環。
3,有用到GOTO語句的盡量用其它語句來實現。
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值