경진의 블로그

PL/SQL - Loop 반복문 본문

자바개발과정/오라클(Oracle)

PL/SQL - Loop 반복문

aith 2008. 6. 3. 13:15
Loop 반복문

Loop문은 For Loop문과 While Loop문처럼 어떤 조건을 두는 것이 아니라 무조건 반복하는 명령문이다.
따라서 계속되는 반복을 멈추려면 Loop문안의 프로그램 내용에, 반복을 끝내는 내용의 코딩이 있어야 한다.

LOOP
   [EXIT [WHEN 조건문];]
END LOOP

Exit를 사용해서 반복문을 멈춘다

 i := 0;
 LOOP
   i := i + 1;
  EXIT WHEN i > 100;
 END LOOP;

또는 IF문과 EXIT를 사용해서 멈춘다.
여기서  i > 100 라는 조건문이 Exit를 유도하는데, 다시 말해서 I 가 101인 경우에 Exist한다는 내용이다. 따라서 조건문을 i = 101로 바꿔도 동일한 의미가 된다.

 i := 0;
 LOOP
   i := i + 1;
   IF i > 100 THEN
     EXIT;
   END IF;
 END LOOP;

declare
n_i number(10) := 0;
n_sum number(10) := 0;
s_msg varchar2(100) := '';
begin
    loop
        n_i := n_i + 1;
        n_sum := n_sum + n_i;
        exit when n_i >= 100;
    end loop;
    dbms_output.put_line('1~100까지의 합은 '||to_char(n_sum));
    n_i := 10;
    loop
        s_msg := RPAD(' ',n_i + 1,'*');
        dbms_output.put_line(s_msg);
        exit when n_i < 1;
        n_i := n_i - 1;
    end loop;
    n_i := 0;
    n_sum := 0;
    loop
        n_i := n_i + 1;
        if mod(n_i,5) = 0 then
            n_sum := n_sum + n_i;
        end if;
 exit when n_i > 100;
    end loop;
    dbms_output.put_line('1~100까지의 5의 배수의 합은 '||to_char(n_sum));
    n_i := 0;
    n_sum := 0;
    loop
        n_i := n_i + 1;
        n_sum := n_sum + n_i;
        exit when n_i = 50;
        exit when n_i >=100;
    end loop;
    dbms_output.put_line('1~100 더하다가 50에서 멈추면 '||to_char(n_sum));
end;
/

'자바개발과정 > 오라클(Oracle)' 카테고리의 다른 글

PL/SQL - Comment 주석  (0) 2008.06.03
PL/SQL - Exception 예외처리  (0) 2008.06.03
PL/SQL - Loop 반복문  (0) 2008.06.03
PL/SQL - While Loop 순환문  (0) 2008.06.03
PL/SQL - For Loop 반복문  (0) 2008.06.03
PL/SQL - For Loop 반복문  (0) 2008.06.02
0 Comments
댓글쓰기 폼