循环控制
直接循环
begin
LOOP
循环体 ;
终止循环的条件 ;
END LOOP ;
END ;
while循环
WHILE 循环
BEGIN
WHILE 条件 LOOP
END LOOP;
END ;
for 循环
FOR 循环
BEGIN
FOR X IN 1..10 LOOP
END LOOP;
END;
执行1+2+3+…+100的值
1.使用loop循环实现
DECLARE
X NUMBER(5) := 1 ;
Y NUMBER(5) := 0 ;
BEGIN
DBMS_OUTPUT.PUT_LINE(X||' '||Y);
DBMS_OUTPUT.PUT_LINE('loop循环开始:');
LOOP
Y := X + Y ;
X := X +1 ;
-- 终止循环的条件 有 ① 和 ② 2种写法。
IF X > 100 THEN --① -- 常规的退出循环的写法
EXIT; -- 退出循环
END IF;
-- EXIT WHEN X > 100 ; -- ② 简写 ,跟 ①的效果一样的。
--DBMS_OUTPUT.PUT_LINE(' '||X||' '||Y);
END LOOP;
DBMS_OUTPUT.PUT_LINE('循环结束');
DBMS_OUTPUT.PUT_LINE('1~100的累加结果为:'||Y);
END ;
2.使用while循环实现
DECLARE
X NUMBER(5) := 0;
Y NUMBER(5) := 0;
BEGIN
WHILE X < 100 LOOP
X := X + 1;
Y := X + Y;
END LOOP;
DBMS_OUTPUT.PUT_LINE('RESULT IS :' || Y);
END;
3.FOR 循环
DECLARE
X NUMBER(3) := 0;
Y NUMBER := 0;
BEGIN
FOR X IN 1 .. 100 LOOP
Y := Y + X;
END LOOP;
DBMS_OUTPUT.PUT_LINE('RESULT IS :' || Y);
END;
打印乘法口诀表
1.for循环 方法一
DECLARE
X NUMBER ;
Y NUMBER ;
BEGIN
FOR X IN 1..9 LOOP
FOR Y IN 1..X LOOP
DBMS_OUTPUT.put(X||'*'||Y||'='||X*Y||' ');
END LOOP;
DBMS_OUTPUT.new_line();
END LOOP ;
END ;
2.for循环 方法二
DECLARE
X NUMBER ;
Y NUMBER ;
BEGIN
FOR X IN 1..9 LOOP
FOR Y IN X..9 LOOP
DBMS_OUTPUT.put(X||'*'||Y||'='||X*Y||' ');
END LOOP;
DBMS_OUTPUT.new_line();
END LOOP ;
END ;