- Oracle從新手到高手
- 楊繼萍
- 1085字
- 2019-12-09 14:49:10
6.3 循環語句
循環語句可以控制程序多次重復地執行某一組語句。在PL/SQL中,常用的循環語句有3種類型,即LOOP循環、WHILE循環和FOR循環。在這幾種基本循環的基礎上又可以演變出許多嵌套循環控制,本節將介紹最基本的循環控制語句。
6.3.1 LOOP…END LOOP循環
LOOP循環也是最基本的循環,也稱為“無條件的循環”。在這種類型的循環中,如果沒有指定EXIT語句,循環將一直運行,即出現死循環,死循環是應該盡量避免的。因此,在LOOP循環中必須指定EXIT語句,以便循環停止執行。
LOOP循環的語法格式如下:
loop statements; exit when condition end loop;
在循環的第n次重復或迭代過程中,都要檢查退出條件表達式是否為真。如果表達式為真,則它會跳過EXIT后的所有語句,并跳到代碼中END LOOP后的第一個語句。如果開始就滿足了WHEN所給出的條件,LOOP和EXIT之間的語句只會被執行一次,但如果沒有WHEN條件語句,則循環會一直執行,這種情況應該盡量避免。
例如,下面的循環語句將依次執行輸出1~10的平方數。

在上面的程序塊中,每一次循環均將變量I加1,當加到10時,滿足循環出口條件終止循環。
6.3.2 WHILE循環
另一種循環類型是WHILE循環,它適用于事先無法知道控制循環終止變量值的情況。與LOOP循環的不同之處在于,WHILE循環在循環的頂部包括了判斷條件,這樣在每次執行循環時,都將判斷該條件。如果判斷條件為TRUE,那么循環將繼續執行。如果判斷條件為FALSE,那么循環將會停止。
WHILE循環的語法結構如下:
while condition loop statements; end loop;
在執行WHILE循環時,首先會檢查判斷條件,如果判斷條件開始就是FALSE,程序將直接執行END LOOP后面的語句,該項循環將一次都不執行。如果判斷條件為TRUE,則執行循環體內的語句,然后再檢查判斷條件。
在下面的程序塊中,將使用WHILE循環打印50以內能被3整除的整數。

只有當條件滿足時,WHILE循環體才會被執行。
6.3.3 FOR循環
在上面的WHILE循環中,為了防止出現死循環,需要在循環內不斷修改判斷條件。而FOR循環則使用一個循環記數器,并通過它來控制循環執行的次數。該計數器可以從小到大進行記錄,也可以相反,從大到小進行記錄。如果不滿足循環條件,則終止循環。FOR循環的語法結構如下:
for loop_variable_name in [reverse] lower_bound…upper_bound loop statements; end loop
在上面的語法中,LOOP_VARIABLE_NAME參數指定循環記數器,在這里既可以使用已有的變量,也可以使用一個新的變量。循環記數器按照步長以1遞增,當使用關鍵字REVERSE時表示遞減。LOWER_BOUND和UPPER_BOUND則指定了循環記數器的上限和下限。
下面的程序通過FOR循環計算1~100的整數之和。

在上面的程序中,循環記數器I不需要在DECLARE部定義,它屬于FOR循環的一部分。控制記數器I的取值將從1~100依次加1,這樣明確了循環的執行次數。
提示:
在FOR循環中的循環記數器只能在循環體內使用。
當使用關鍵字REVERSE時,循環記數器將自動減1,并強制記數器的取值從上限值到下限值。下面的程序將打印1~20之間能被3整除的數。

- Instant Testing with CasperJS
- ExtGWT Rich Internet Application Cookbook
- 嵌入式軟件系統測試:基于形式化方法的自動化測試解決方案
- Git Version Control Cookbook
- Mastering phpMyAdmin 3.4 for Effective MySQL Management
- Python深度學習
- Python爬蟲開發與項目實戰
- Windows Presentation Foundation Development Cookbook
- Yocto for Raspberry Pi
- Visual C#.NET程序設計
- Creating Mobile Apps with jQuery Mobile(Second Edition)
- Python深度學習原理、算法與案例
- Building Machine Learning Systems with Python(Second Edition)
- PHP 7從零基礎到項目實戰
- JavaScript+jQuery網頁特效設計任務驅動教程