WHILE문
[WHILE문으로 누적합 구하기]
DECLARE
HAP NUMBER := 0;
K NUMBER := 1;
BEGIN
WHILE K<=10 LOOP ----LOOP가 {} 같은 역할
HAP := HAP +K;
K := K+1; -- 이거 없으면 무한루프 걸리죠 ?! 오라클엔 ++ 이거 없음요!
END LOOP;
DBMS_OUTPUT.PUT_LINE('1부터 10까지 누적합='||HAP);
END;
/
역시 WHILE문 이용해서
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
=> 출력하기
DECLARE
i NUMBER := 1;
k NUMBER;
BEGIN
WHILE i<=4 LOOP
k:=1;
WHILE k<= 4 LOOP
if i=k then
dbms_output.put('1 ');
else
dbms_output.put('0 ');
end if;
k := k+1;
END LOOP;
i := i+1;
dbms_output.new_line;
END LOOP;
END;
/
또 역시 구구단 출력하기
DECLARE
i number := 1;
k number := 2;
BEGIN
while i<=9 loop
while k <= 9 loop
dbms_output.put(k||'*'||i||'='||k*i||' ');
k := k+1;
end loop;
dbms_output.new_line;
i := i+1;
k := 2; -->>>> 이거!!!!! 중요오오오오!! 없으면 1행만 출력됨!! 자바에서는 WHILE문 위에 초기식에서 초기화 하니까 맞다맞다맞다
end loop;
end;
/
LOOP문
오라클에 있지만 자바엔 없는 반복문 중 하나
아주 낯선놈이지만.... WHILE과 비슷하다 문법 잘 익혀두자
[끝에서 부터 누적 합]
accept num prompt'끝 값을 입력?'
declare
hap NUMBER := 0;
num NUMBER := # -> &num은 변수가 아님 상수야 상수 사용자한테 받으니까!
begin
loop
hap := hap + num;
num := num-1;
EXIT WHEN num =0;
-> 특이하게 이건 WHEN 절이 참이면 LOOP를 빠져 나온다!
WHEN condition 없으면 무조껀 나감 EXIT가 BREAK 같은 역할!
end loop;
dbms_output.put_line(&num || '까지 누적합='||hap);
end;
/
[사용자 입력받아 그 사이값의 누적 합] IF & LOOP 의 콜라보 와우
ACCEPT snum prompt '시작 값 입력?'
accept enum prompt '끝 값 입력?'
declare
hap NUMBER;
snum NUMBER := &snum;
begin
문제) 시작값부터 종료값까지 누적합구하기 .. 시작값이 종료보다 크면 크다 라고 출력하고 프로그램 끝내라
if &snum > &enum then
dbms_output.put('시작값이 종료값보다 커요');
else
hap := 0 ;
LOOP
hap := hap + snum ;
snum := snum +1;
EXIT WHEN &enum < snum;
END LOOP;
end if ;
dbms_output.put_line(&snum||'부터'||&enum||' 까지 누적합='||hap);
end;
/
[짝수면 두 번, 홀수면 1번 출력]
자바에서 의 While (TRUE){ }
ACCEPT num prompt '숫자 입력?'
declare
num NUMBER := #
begin
WHILE 1=1 LOOP
오라클의 while엔 무조건 조건식을 넣어줘야 해서 TRUE 대신 무조건 TRUE인 조건식 아무거나 넣어줘야 함
DBMS_OUTPUT.PUT_LINE('num is '|| num);
num := num-1;
EXIT WHEN mod(num,2) = 0 ;
END LOOP;
end;
/
'학원 > DB(오라클),SQL문' 카테고리의 다른 글
10/20 25-1 사용자 정의 예외 (0) | 2022.10.20 |
---|---|
10/19 24-3 [PL/SQL] EXCEPTION(예외 처리) (0) | 2022.10.19 |
10/19 24-2 [PL/SQL]FOR문 (0) | 2022.10.19 |
10/19 24-1 [PL/SQL] IF문 (0) | 2022.10.19 |
10/18 23-6 [사용자 생성 및 권한] (1) | 2022.10.18 |