Chinaunix首页 | 论坛 | 博客
  • 博客访问: 559932
  • 博文数量: 155
  • 博客积分: 4015
  • 博客等级: 上校
  • 技术积分: 1625
  • 用 户 组: 普通用户
  • 注册时间: 2005-11-18 16:55
文章分类

全部博文(155)

文章存档

2009年(20)

2008年(39)

2007年(66)

2006年(29)

2005年(1)

我的朋友

分类: Oracle

2006-06-10 09:54:38

  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    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

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

PL/SQL循環語句的注意點:
1,根據實現需要來選擇,是先要判斷,還是先要循環。
2,應注意變量的自增或自增,以防造成死循環。
3,有用到GOTO語句的盡量用其它語句來實現。
 
 
Jerry_Chow
06/06/10
 
後記:很久都沒有寫了,今天一開筆,還真不知道怎麼寫了。
 
 
 
 
阅读(2067) | 评论(0) | 转发(0) |
0

上一篇:快樂很簡單

下一篇:明天还会是你吗

给主人留下些什么吧!~~