PL/SQL嵌套循环操作实例

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;

窗口截图:


执行结果截图:




猜你喜欢

转载自blog.csdn.net/henni_719/article/details/79694024
今日推荐