더북(TheBook)

LOOP문

LOOP문은 루프를 돌며 반복해서 로직을 처리하는 반복문이다. 이러한 반복문에는 LOOP문 외에도 WHILE문, FOR문이 있는데, 먼저 가장 기본적인 형태의 반복문인 LOOP문에 대해 살펴 보자.

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

LOOP문은 ‘LOOP … END LOOP;’ 형태로 사용한다. 반복문은 특정 조건을 만족할 때만 루프를 돌며 로직을 처리해야 하는데, LOOP문은 특정 조건이란 것이 없다. 그 대신 “이런 경우에 루프를 빠져 나가라” 라는 EXIT를 사용해 루프를 종료한다. 따라서 EXIT를 누락하면 무한루프에 빠지게 되니 사용할 때 주의해야 한다. 일반적으로 LOOP문에서는 IF문을 사용해 루프를 빠져나가는 조건을 걸기도 하지만, “EXIT WHEN 조건”을 사용해 WHEN절에서 명시한 조건에 맞을 때 빠져 나가라고 명시할 수 있다. 8장 연습문제에서 풀어본 구구단 중 3단을 출력하는 익명 블록을 LOOP문을 사용해 구현해 보자.

입력

    DECLARE
      vn_base_num NUMBER := 3;
      vn_cnt      NUMBER := 1;
    BEGIN
      LOOP
          DBMS_OUTPUT.PUT_LINE (vn_base_num || '*' || vn_cnt || '= ' || vn_base_num * vn_cnt);
          vn_cnt := vn_cnt + 1;      -- 루프를 돌면서 vn_cnt 값은 1씩 증가됨

          EXIT WHEN vn_cnt > 9;      -- vn_cnt가 9보다 크면 루프 종료
      END LOOP;
    END;

결과

    3*1= 3
    3*2= 6
    3*3= 9
    3*4= 12
    3*5= 15
    3*6= 18
    3*7= 21
    3*8= 24
    3*9= 27
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.