Oracle循环结构示例,打印图形,三角形,菱形

主要是讲loop,while,for三种循环
一.Loop
1.带有exit when 的简单循环
语法:

Loop
//执行语句
Exit  when condition;
End loop

示例:

declare
  V_loop int := 1;
begin
  loop
    exit when V_loop >= 6;
    dbms_output.put_line('天空飘来' || V_loop || '个字,那都不是事儿');
    V_loop := V_loop + 1;
  end loop;

2.带有continue的简单循环
语法:

Loop
//执行语句
If continue_condition then continueend ifExit  when condition;
End loop

示例:

declare
  V_loop int := 0;
begin
  loop
    V_loop := V_loop + 1;
    if mod(V_loop, 2) = 0 then
      continue;
    end if;
    exit when V_loop >= 6;
    dbms_output.put_line('天空飘来' || V_loop || '个字,那都不是事儿');
  end loop;
end;

3.带有continue when 的简单循环语句

Loop
//执行语句
continue  when Icontinue_condition;
Exit  when condition;
End loop

二.While 循环

While condition loop
//语句
End loop
eclare
  V_i   int := 0;
  V_sum int := 0;
begin
  while V_i <= 100 loop
    V_i := V_i + 1;
    continue when mod(V_i, 2) != 0;
    V_sum := V_sum + V_i;

  end loop;
  dbms_output.put_line('100以内偶数和'||V_sum);
end;

三.数值型for循环
For 循环计数器in [reverse] 最小值..最大值

loop
//执行语句
End loop;
--打印三角形
begin
  for i in 1 .. 5 loop
    for j in 1 .. i loop
      dbms_output.put('*');
    end loop;
    dbms_output.put_line('');
  end loop;
end;

--打印乘法表
begin
  for i in 1 .. 9 loop
    for j in 1 .. i loop
      dbms_output.put(j||'*'||i||'='||j*i||chr(9));
    end loop;
    dbms_output.put_line('');
  end loop;
end;

--打印等腰三角形
begin
  for i in 1..5 loop
    for j in 1 ..5-i loop
      dbms_output.put(' ');
    end loop;
    for j in 1 ..2*i-1 loop

      dbms_output.put('*');
    end loop;
    dbms_output.put_line('');
  end loop;
end;

--打印菱形
begin
  --上部分
  for i in 1..4 loop
    for j in 1 ..4-i loop
      dbms_output.put(' ');
    end loop;
    for j in 1 ..2*i-1 loop
       dbms_output.put('*');
    end loop;
    dbms_output.put_line('');
  end loop;
  --下部分
  for i in reverse 1..4 loop
    for j in 1 ..4-i loop
      dbms_output.put(' ');
    end loop;
    for j in 1 ..2*i-1 loop
       dbms_output.put('*');
    end loop;
    dbms_output.put_line('');
  end loop;
end;

猜你喜欢

转载自blog.csdn.net/weixin_36027342/article/details/79715312