문제/SQL

231026 PL/SQL 복습 겸 문제

잇꼬 2023. 10. 26. 15:55
728x90
반응형
SMALL

[문제] 1부터 100까지 합을 출력해주세요.

DECLARE
    i number := 1;
    i_sum number := 0;
BEGIN
    LOOP
        i := i + 1;
        i_sum := i_sum + i;
        IF i > 101 THEN
            EXIT;
        END IF;
    END LOOP;
           dbms_output.put_line('i_sum : '||i_sum);
END; 
/



정답) 

DECLARE
    v_cnt number := 1; -- 1부터 시작
    v_sum number := 0; -- 누적합
BEGIN
    LOOP
        v_sum := v_sum+v_cnt;
        exit when v_cnt = 100;
        v_cnt := v_cnt+1;
    END LOOP;
        dbms_output.put_line('1부터 100까지의 합 : '||v_sum);
END; 
/


[문제] 1부터 100까지 짝수만 출력해주세요.

DECLARE
    i NUMBER := 1;
BEGIN
    LOOP
        i := i + 1;
        IF i = 100 and MOD(i, 2) = 0 THEN
            EXIT;
        END IF;
        dbms_output.put_line(i);
    END LOOP;
END;
/

수정)

DECLARE
    i NUMBER := 1;
BEGIN
    LOOP
        i := i + 1;
        IF i > 100  THEN
            EXIT;
        END IF;
        IF MOD(i, 2)=0 THEN
            dbms_output.put_line(i);
        END IF;
    END LOOP;
END;
/

IF문에 있는 2개의 조건을 1개씩 나눠서 하나씩 짝수만 출력이 된다. 


정답)

DECLARE
    v_cnt number := 1;
BEGIN
    LOOP 
        IF MOD(v_cnt, 2) = 0 THEN 
            dbms_output.put_line(v_cnt);
        END IF;
        v_cnt := v_cnt +1;
        exit when v_cnt> 100;        
    END LOOP;
END;
/

728x90
반응형
LIST

'문제 > SQL' 카테고리의 다른 글

231030 PL/SQL 복습  (0) 2023.10.30
231027 PL/SQL 복습 겸 문제  (0) 2023.10.30
231024 Oracle SQL 실기 TEST's 오답노트  (0) 2023.10.24
231024 Oracle SQL 필기 TEST's 오답노트  (0) 2023.10.24
231018 복습 겸 문제  (0) 2023.10.18