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
    
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.