PL/SQL巢狀迴圈操作例項
阿新 • • 發佈:2019-01-03
PL/SQL允許使用一個迴圈內巢狀另一個迴圈。在PL/SQL巢狀基本LOOP語句的語法如下:
LOOP
Sequence of statements1
LOOP
Sequence of statements2
END LOOP;
END LOOP;
在PL/SQL 迴圈FOR語句巢狀的語法如下:FOR counter1 IN initial_value1 .. final_value1 LOOP sequence_of_statements1 FOR counter2 IN initial_value2 .. final_value2 LOOP sequence_of_statements2 END LOOP; END LOOP;
操作例項如下:
-- Created on 2018/3/26 by E.WANG begin --使用一個基本巢狀迴圈,找出2-81中的素數 --素數是指除了1和它本身以外,不能被任何整數整除的數。 declare --素數範圍 m number(3); --進行判讀的因子 j number(3); begin /* 此判斷一個整數m是否是素數, 只需把m被2~m-1之間的每一個整數去除, 如果都不能被整除,那麼m就是一個素數。 */ --初始化變數 m := 2; <<outer_loop>> loop --初始化變數 j:= 2; --迴圈標記 <<inner_loop>> loop --當m能被j整除或m與j相等時,結束該迴圈 exit when ((mod(m, j) = 0) or (j = m)); --不滿足上述條件,給j加一繼續當前迴圈 j := j +1; end loop inner_loop; --如果m與j相等輸出m值 if (j = m ) then dbms_output.put_line(m || ' is prime'); end if; --m加1進行下一次迴圈 m := m + 1; --當m等於81結束當前迴圈 exit when m = 81; end loop outer_loop; /* 另一種,由於我本機這個沒有sqrt這個函式,在此不做演示。 具體操作說明如下: m不必唄2~m-1之間的每一個整數去除, 只需被2~√m之間的每一個整數去除就可以了。 如果m不能被2~√m間任一整數整除,m必定是素數。 √m:m的開平方 */ end; dbms_output.put_line('-------------------9*9-------------------------'); --九九乘法口訣 declare mul_1 int; mul_2 int; mul_result int; begin <<outter_forloop>> for mul_1 in 1..9 loop <<inner_forloop>> for mul_2 in 1..9 loop mul_result:=mul_1 * mul_2; dbms_output.put_line(mul_1 || ' * ' || mul_2 || '= ' ||mul_result); end loop; end loop; end; end;
視窗截圖:
執行結果截圖: