오라클 반복문 (for loop, while loop)

Back-End/Data Base 2019. 7. 3. 13:42
728x90
반응형

- for loop -


[문법 예시]


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
SET serveroutput ON; //서버에서 출력되는 값을 기본값을 설정
 
BEGIN // 반복문의 시작 부
 
FOR i in 1..4 LOOP // 4번 회전시킨다는 의미
 
if mod(i, 2= 0 then //짝수인지 홀수인지 판단하기 위해 i를 2로 나누었을때의 값이 0인지 아닌지 판ㅇ
 
dbms_output.put_line(i || '는 짝수!!'); //if구문이 참이면 실행되는 구문 ex) 2는 짝수!!
 
else
 
dbms_output.put_line(i || '는 홀수!!'); //if구문이 거짓이면 실행되는 구문 ex) 3는 거짓!!
 
end if; //if구문의 끝
 
END LOOP; LOOP를 종료시킨다는 의미
 
END; //반복문의 끝 부분
cs




- while -


[문법]


1
2
3
4
while 조건

LOOP

처리문;

END LOOP;
cs



while 문은 loop 문과 비슷하지만 while 다음에 조건을 붙여 해당 조건에 만족할 때만 루프를 돌면서 로직을 처리한다.


while 다음에 조건처리를 한 부분만 제외하면 다른 부분은 LOOP 문과 같지만, LOOP문과 달리 vn_cnt값이 9보다 작거나


같은 경우라는 조건을 주었다는 점을 살펴보자.


LOOP문에서는 루프를 빠져 나가는 조건을 주었지만, while 문에서는 루프를 수행하는 조건을 준 것이다.


while문에서도 루프를 돌다가 특정 조건에 부합하면 exit를 써서 루프를 빠져 나올 수 있다.




- while 문을 사용해 구구단 3단을 출력하는 예시 -


1
2
3
4
5
6
7
8
9
10
DECLARE
    vn_base_num NUMBER := 3; //변하지 않는 기본값
    vn_cnt      NUMBER := 1; //3단을 출력해야하므로 1씩 증가하는 숫자
BEGIN
WHILE vn_cnt <= 9     --vn_cnt가 9보다 작거나 같을 때만 반복 
LOOP
    DBMS_OUTPUT.PUT_LINE (vn_base_num || '*' || vn_cnt || '=' || vn_base_num * vn_cnt);
    vn_cnt := vn_cnt + 1--vn_cnt 값을 1씩 증가
END LOOP;
END;
cs



출력된 결과값

1
2
3
4
5
6
7
8
9
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
cs


728x90
반응형

'Back-End > Data Base' 카테고리의 다른 글

ERD (ER 다이어그램) Cloud  (0) 2019.07.08
MongoDB 문법, SQL과의 비교  (0) 2019.07.08
오라클 변수 선언  (0) 2019.07.03
기본 용어 정리  (0) 2019.06.27
무결성이란?  (0) 2019.06.27
: