Oracle分别使用简单循环、FOR循环、while循环编写程序计算从1到100中能被7整除的整数个数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle分别使用简单循环、FOR循环、while循环编写程序计算从1到100中能被7整除的整数个数相关的知识,希望对你有一定的参考价值。

Oracle分别使用简单循环、FOR循环、while循环编写程序计算从1到100中能被7整除的整数个数

参考技术A --简单循环
declare
c number(3):=1;
begin
loop
if mod(c,7)=0 then
dbms_output.put_line(c);
end if;
c:=c+1;
exit when c>100;
end loop;
end;

--FOR循环
begin
for x in (select level from dual where mod(level,7)=0 connect by level<=100 ) loop
dbms_output.put_line(x.level);
end loop;
end;

--while
declare
c number(3) := 1;
begin
while c <= 100 loop
if mod(c, 7) = 0 then
dbms_output.put_line(c);
end if;
c := c + 1;
end loop;
end;

Oracle循环语句

Oracle循环语句

编写循环控制结构时,用户可以使用基本循环,WHILE循环和FOR循环等三种类型的循环语句,下面分别介绍使用这三种循环语句的方法。

1.基本循环

LOOP

         statement1;

         ......

          EXIT [WHEN condition];

END LOOP;

当使用基本循环时,无论是否满足条件,语句至少会被执行一次,当condition为TRUE时,会退出循环,并执行END LOOP后的相应操作。当编写基本循环时一定要包含EXIT语句,否则会陷入死循环。另外还应该定义循环控制变量,并且在循环体内修改循环控制变量的值。示例:

SQL> declare
  2  i int:=1;
  3  begin
  4  loop
  5  insert into testloop values(i);
  6  exit when i=10;
  7  i:=i+1;
  8  end loop;
  9  end;
10  /

2.WHILE循环

基本循环至少要执行一次循环体内的语句,而对于WHILE循环来说,只有条件为TRUE时,才会执行循环体内的语句。WHILE循环以WHILE ...LOOP开始,以END LOOP结束。

WHILE condition LOOP

           statement1;

           statement2;

           .....

END LOOP;

当condition为TRUE时,执行循环体内的语句,而当condition为FALSE或NULL时,会退出循环,并执行END LOOP后的语句。当使用WHILE循环时,应该定义循环控制变量,并在循环体内改变循环控制变量的值。示例:

SQL> declare
  2  i int:=1;
  3  begin
  4  while i<=10 loop
  5  insert into testloop values(i);
  6  i:=i+1;
  7  end loop;
  8  end;
  9  /

3.FOR循环

当使用基本循环或WHILE循环时,需要定义循环控制变量,并且循环控制变量不仅可以使用NUMBER类型,也可以使用其他数据类型。当使用FOR循环时,ORACLE会隐含定义循环控制变量。

FOR counter in [REVERSE] lower_bound. .upper_bound LOOP

         statement1;

         statement2;

         .......

END LOOP;

counter是循环控制变量,并且该变量由oracle隐含定义,不需要显式定义。lower_bound和upper_bound分别对应于循环控制变量的下界值和上界值,默认情况下,当使用FOR循环时,每次循环时循环控制变量会自动增1.如果指定REVERSE选项,那么每次循环时循环控制变量会自动减1。示例:

SQL> begin
  2  for i in reverse 1..10 loop
  3  insert into testloop values(i);
  4  end loop;
  5  end;

4.嵌套循环和标号

嵌套循环是指在一个循环语句之中嵌入另一个循环语句,而标号(label)则用于标记嵌套块或嵌套循环,通过在嵌套循环中使用标号,可以区分内层循环和外层循环,并且可以在内层循环中直接退出外层循环,在编写时可以用<<label_name>>定义标号。示例:

SQL> declare
  2  result int;
  3  begin
  4  <<outer>>
  5  for i in 1..100 loop
  6  <<inter>>
  7  for j in 1..100 loop
  8  result:=i*j;
  9  exit outer when result=1000;
10  exit when result=500;
11  end loop inter;
12  dbms_output.put_line(result);
13  end loop outer;
14  dbms_output.put_line(result);
15  end;
16  /

当执行以上PL/SQL块时,如果result=1000,那么直接退出外层循环,而result=500时只会退出内层循环。

以上是关于Oracle分别使用简单循环、FOR循环、while循环编写程序计算从1到100中能被7整除的整数个数的主要内容,如果未能解决你的问题,请参考以下文章

Oracle循环语句

用for循环输出九九乘法表

2022年最新Python大数据之Python基础

反应循环问题

oracle存储过程中循环for in是如何使用的

存储过程中For循环怎么写啊?