더북(TheBook)

FOR문

FOR문도 다른 프로그래밍 언어에서 사용하는 것과 비슷한 형태이다. 오라클에서 제공하는 FOR문의 기본 유형은 다음과 같다.

    FOR 인덱스 IN [REVERSE]초깃값..최종값
    LOOP
      처리문;
    END LOOP;

인덱스는 초깃값에서 시작해 최종값까지 루프를 돌며 1씩 증가되는데, 인덱스는 참조는 가능하지만 변경할 수는 없고 참조도 오직 루프 안에서만 가능하다. 그리고 REVERSE를 명시하면 순서가 거꾸로 된다. 즉 최종값부터 시작해 최솟값에 이르기까지 감소하면서 루프를 돈다. 구구단 3단을 출력하는 익명 블록을 FOR문으로 변경해 보자.

입력

    DECLARE
      vn_base_num NUMBER := 3;
    BEGIN
       FOR i IN 1..9
       LOOP
          DBMS_OUTPUT.PUT_LINE (vn_base_num || '*' || i || '= ' || vn_base_num * i);
       END LOOP;
    END;

FOR 루프에서 사용하는 인덱스는 선언부에서 선언하지 않고 사용했음을 유념하자. 이번에는 REVERSE를 사용해 순서를 바꿔 보자.

입력

    DECLARE
       vn_base_num NUMBER := 3;
    BEGIN
       FOR i IN REVERSE 9..1
       LOOP
          DBMS_OUTPUT.PUT_LINE (vn_base_num || '*' || i || '= ' || vn_base_num * i);
       END LOOP;
    END;

결과

    3*9= 27
    3*8= 24
    3*7= 21
    3*6= 18
    3*5= 15
    3*4= 12
    3*3= 9
    3*2= 6
    3*1= 3

지금까지 기본 형태의 FOR문을 살펴봤는데, 커서와 함께 FOR문을 사용하면 그 형태가 약간 다르다. 이에 대해서는 커서를 다루는 장에서 설명하겠다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.