LOOP 循环
LOOP
PLSQL_SENTENCE; ----要执行的语句
EXIT WHEN 结束条件; ----条件满足,退出循环
END LOOP;
2+4+6+8+…+100
DECLARE
I NUMBER :=0;
S NUMBER :=0;
BEGIN
LOOP
S :=S + I;
EXIT WHEN I=100;
I := I+2;
END LOOP;
DBMS_OUTPUT.PUT_LINE('S='||S);
END;
DECLARE
A NUMBER := 0;
S NUMBER := 0;
BEGIN
LOOP
S:=S+A;
A:=A+2;
EXIT WHEN A>100;
END LOOP;
DBMS_OUTPUT.PUT_LINE(S);
END;
打印1-100
DECLARE
---声明变量
I NUMBER :=0;
BEGIN
LOOP
---让i每次+1
I := I+1;
DBMS_OUTPUT.PUT_LINE(I);
----结束循环的条件
EXIT WHEN I=100;
END LOOP;
END;
N=1时 不打印1
因为他首先运行了i :=i+1,才打印
N>100时,打印了101
I=1+3+5+7+...+99
S=S+I
DECLARE
I NUMBER :=1;
S NUMBER :=0;
BEGIN
LOOP
S :=S + I;
DBMS_OUTPUT.PUT_LINE('I='||I);
EXIT WHEN I>100;
I := I+2;
DBMS_OUTPUT.PUT_LINE('S='||S);
END LOOP;
END;
WHILE循环
打印1-100
DECLARE
I NUMBER := 1;
BEGIN
WHILE I<101 LOOP
DBMS_OUTPUT.PUT_LINE(I);
I:=I+1;
END LOOP;
END;
这个的I要小于101 才会打印1-100
WHILE循环
循环体可能一次也不进入循环
FOR循环
打印1-100
DECLARE
BEGIN
FOR I IN 1..100 LOOP
/*IF MOD(I,2)=0 THEN */
DBMS_OUTPUT.PUT_LINE(I);
/* END IF;*/
END LOOP;
END;
for循环外计数器不被认可,不能直接被使用
1-N
DECLARE
N NUMBER :=&N;
BEGIN
FOR I IN 1..N LOOP
DBMS_OUTPUT.PUT_LINE(I);
END LOOP;
END;