PL/SQL - 루프: 효율적인 프로그래밍의 관문
안녕하세요, 미래의 코딩 슈퍼스타 여러분! 오늘 우리는 PL/SQL 루프의 세계로 흥미로운 여정을 떠납니다. 여러분의 친절한 이웃 컴퓨터 교사로서 저는 이 모험을 단계별로 안내해드리겠습니다. 그러니 안전벨트를 고정하고 다이빙해 보겠습니다!
루프 이해: 기본 개념
먼저 루프에 대해 이해해 보겠습니다. 상상해 보세요. "코드를 사랑해요"라고 黑板에 100번 쓰는 임무를 맡았을 때. 지루하지 않나요? 이때 루프가 구원자가 됩니다! 루프는 같은 코드를 반복적으로 작성하지 않고 여러 번 지시를 반복할 수 있게 해줍니다.
PL/SQL에서는 세 가지 주요 루프 유형이 있습니다:
- LOOP
- FOR LOOP
- WHILE LOOP
이 각각을 자세히 탐구해 보겠습니다.
1. 간단한 LOOP
간단한 LOOP는 결단력 있는 강아지가 꼬리를 쫓는 것처럼 - 멈추도록 지시할 때까지 반복됩니다. 다음과 같이 보입니다:
LOOP
-- 여러분의 코드 여기에
EXIT WHEN 조건;
END LOOP;
실제 예제를 보겠습니다:
DECLARE
v_counter NUMBER := 1;
BEGIN
LOOP
DBMS_OUTPUT.PUT_LINE('루프 반복: ' || v_counter);
v_counter := v_counter + 1;
EXIT WHEN v_counter > 5;
END LOOP;
END;
이 예제에서 우리는 루프 반복 번호를 출력합니다. 루프는 컨트롤러가 5를 초과할 때까지 계속됩니다. 양치기가 양을 세는 것처럼, 하지만 우리는 효율적인 프로그래머이므로 5에서 멈춥니다!
2. FOR LOOP
FOR LOOP는 잘 조직된 여행 안내자처럼 - 반복 횟수를 정확히 알고 자동으로 멈춥니다. 다음과 같은 문법입니다:
FOR 반복자 IN [REVERSE] 하한..상한 LOOP
-- 여러분의 코드 여기에
END LOOP;
다음은 그것을 활용한 예제입니다:
BEGIN
FOR i IN 1..5 LOOP
DBMS_OUTPUT.PUT_LINE('반복 ' || i || ': PL/SQL을 사랑해요!');
END LOOP;
END;
이 루프는 "PL/SQL을 사랑해요!"를 다섯 번 출력합니다. 각 번호와 함께. 하루에 PL/SQL을 칭찬하는 목표를 세우는 것처럼 - 달성 가능하고 구체적입니다!
3. WHILE LOOP
WHILE LOOP는 조심스러운 운전자처럼 - 각 반복 전에 조건을 확인합니다. 다음과 같이 작동합니다:
WHILE 조건 LOOP
-- 여러분의 코드 여기에
END LOOP;
다음은 예제입니다:
DECLARE
v_sum NUMBER := 0;
v_counter NUMBER := 1;
BEGIN
WHILE v_sum < 10 LOOP
v_sum := v_sum + v_counter;
DBMS_OUTPUT.PUT_LINE('합: ' || v_sum || ', 컨트롤러: ' || v_counter);
v_counter := v_counter + 1;
END LOOP;
END;
이 루프는 합이 10을 초과할 때까지 숫자를 더합니다. 돈을 저축하여 새로운 기기 구매를 목표로 하는 것처럼!
PL/SQL 루프 레이블링
이제 루프 레이블링에 대해 이야기해 보겠습니다. 루프를 이름을 지어주는 것처럼 - 특히 중첩 루프에서는 식별하고 제어하는 데 도움이 됩니다. 다음과 같이 레이블을 지정합니다:
<<루프_레이블>>
LOOP
-- 여러분의 코드 여기에
END LOOP 루프_레이블;
중첩 루프와 함께하는 예제를 보겠습니다:
<<outer_loop>>
FOR i IN 1..3 LOOP
<<inner_loop>>
FOR j IN 1..3 LOOP
DBMS_OUTPUT.PUT_LINE('外부: ' || i || ', 내부: ' || j);
IF i = 2 AND j = 2 THEN
EXIT outer_loop;
END IF;
END LOOP inner_loop;
END LOOP outer_loop;
이 예제에서 우리는 i=2와 j=2일 때 외부 루프를 종료합니다. 중첩된 러시아 인형을 열고 중간에 멈추는 것처럼!
루프 제어 문장
루프 제어 문장은 루프 차량의 방향을 제어하는 핸들처럼 - 루프 실행을 안내합니다. 주요 제어 문장을 살펴보겠습니다:
문장 | 설명 |
---|---|
EXIT | 즉시 루프를 종료합니다 |
EXIT WHEN | 조건이 참이 되면 루프를 종료합니다 |
CONTINUE | 현재 반복의 나머지 부분을 건너뜀 |
CONTINUE WHEN | 조건이 참이 되면 현재 반복의 나머지 부분을 건너뜀 |
다음은 이 제어 문장을 사용한 예제입니다:
DECLARE
v_counter NUMBER := 0;
BEGIN
LOOP
v_counter := v_counter + 1;
-- 홀수를 건너뜀
CONTINUE WHEN MOD(v_counter, 2) != 0;
DBMS_OUTPUT.PUT_LINE('偶수: ' || v_counter);
-- 10에 도달하면 종료
EXIT WHEN v_counter = 10;
END LOOP;
END;
이 루프는 2에서 10까지의 짝수를 출력합니다. 고급스러운 요리를 건너뛰고 배부른 상태로 멈추는 것처럼!
결론
이제 여러분은 PL/SQL 루프의 세계를 돌아다녔습니다. 루프는 여러분의 프로그래밍 도구箱에서 강력한 도구입니다. 그들은 반복적인 작업을 자동화하고, 데이터를 효율적으로 처리하며, 코드를 더욱 우아하게 만들어줍니다.
연습을 통해 여러분은 이 개념에 더 익숙해질 것입니다. 두려워 말고 실험해 보세요 - 우리는 모두 그렇게 배웁니다. 그리고谁知道呢? 어쩌면 여러분은 잠자는 중에 루프를 작성하게 될지도 모릅니다(하지만 침대 시트를 위해 그렇지 않기를 바랍니다)!
계속 코딩하고, 계속 배우고, PL/SQL을 즐겨주세요!
Credits: Image by storyset