標籤:
6.1 簡單迴圈
簡單迴圈,就想其名稱一張,是一種最基本迴圈。簡單迴圈具有如下結構
LOOP
STATEMENT 1;
STATEMENT 2;
...
STATEMENT N;
END LOOP;
保留字LOOP標識簡單迴圈的開始。STATEMENT1到STATEMENT N 是反覆執行的語句序列。這些語句由一個或者多個標準的編程結構組成。END LOOP是標識迴圈結構結束的保留字
每次迴圈迭代處理時,一些列語句會執行,然後再次執行迴圈最開始的語句。上述語句序列會無限制的執行,因為沒有語句指定何時迴圈會終止。因此,簡單迴圈稱為無窮迴圈,因為無法退出這個迴圈,正確構造的迴圈需要允出準則,允出準則決定迴圈終止的情況。允出準則有兩種形式:EXIT和EXIT WHEN
1. EXIT語句
使用EXIT子句,當EXIT條件為TRUE時,迴圈會終止。計算EXIT條件時會使用IF語句。當EXIT語句被計算為TRUE時,執行權會轉到END LOOP語句後的第一條可執行語句
LOOP
STATEMENT 1;
STATEMENT 2;
IF CONDIDTION THEN
EXIT;
END LOOP;
STATEMENT 3;
2. EXIT WHEN 語句
只有當EXIT WHEN 語句條件的計算結果為TRUE時,才會終止迴圈。然後,執行權會轉到END LOOP 語句之後的第一條可執行語句。
EXIT WHEN子句的迴圈結構
LOOP
STATEMENT 1;
STATEMENT 2;
EXIT WHEN CONDIDTION;
END LOOP;
STATEMENT 3;
6.1.2 使用帶有EXIT WHEN條件的簡單迴圈
6.2 WHILE 迴圈
WHILE迴圈結構:
WHILE CONDITION LOOP
STATEMENT 1;
STATEMENT 2;
......
STATEMENT N;
END LOOP;
保留字WHILE標識迴圈結構的開始。CONDITION是本訓話的測試條件,結果為TRUE或者FALSE.測試結果決定是否執行本迴圈。語句1~N是重複執行的語句序列。END LOOP是標識迴圈結構結束的保留字
理解:就是先判斷CONDIDTION如果是TRUE滿足就進入迴圈,不滿足就結束迴圈直接執行下一條語句
提前終止迴圈
在WHILE迴圈體中,可以使用EXIT和EXIT WHEN語句。如果在測試條件為FALSE之前,EXIT條件為TRUE,則迴圈會被提前終止。如果在EXIT條件為TRUE之前,測試條件為TRUE,測不算作迴圈提前終止。
WHILE TEST_CONDIDTION LOOP
STATEMENT 1;
STATEMENT 2;
IF EXIT_CONDITION THEN
EXIT;
END IF;
END LOOP;
STATEMENT 3;
或者
WHILE TEST_CONDIDTION LOOP
STATEMENT 1;
STATEMENT 2;
EXIT WHEN EXIT_CONDITION;
END LOOP;
STATEMENT 3
6.3 數值型FOR迴圈
FOR loop_counter IN [REVERSE] lower_limit....upper_limit loop
STATEMENT 1;
STATEMENT 2;
.....
STATEMENT N;
END LOOP
1. 在迴圈中使用REVERSE選項
在本節前面,當電腦迴圈計數器的值時,可以使用兩個選項:IN和REVERSE.前面已經討論過在迴圈中IN選項的用法。下面的例子示範如何在迴圈中使用IN REVERSE選項
ORACLE PL/SQL 執行個體精解之第六章 迭代控制之一