데이터베이스 PL/SQL 제어문 - 반복문

반복문
반복문은 말그대로 동작을 반복시켜주는 명령문이다. pl/sql에서 반복문은 loop문을 사용한다. 이 때 역시 ()를 사용하지 않기 때문에 end loop를 꼭 끝나는 지점에 입력해야 하며, ‘ ; ’을 조심하도록 하자.

그리고 반복문에서 중요한 것은 탈출 조건이다. 탈출 조건을 명시하지 않으면 반복문이 무한하게 돌기 때문에 꼭 이를 기입해야 주어야 한다.

이 때 if를 사용하는 조건문을 작성하여도 되고, 아래 예문처럼 when을 사용하기도 한다. 그리고 탈출을 위해서 exit를 입력해준다.


문제


짝수의 합 구하기

  • 10까지의 짝수 합 구하기
일단 pl / sql에는 %연산자가 없다는 사실을 기억하자. 그러면 짝수를 어떻게 구하면 좋을까?

정말 간단하게 구성하자면, 2부터 시작하여 2씩 증가하게 만들면 짝수만을 구하여 더할 수 있다. 이렇게 코드를 먼저 구성해보겠다. 그리고 12가 될 때 해당 루프문을 탈출하도록 하면 2부터 10까지 짝수항 덧셈을 수행할 수 있다.


  • 100까지의 짝수 합 구하기
다음은 짝수를 100까지 더하려고 한다. 이 때는 위의 방법과 달리 mod라는 연산자를 사용하자. 이는 데이터베이스에서 사용하는 함수로서 나머지값을 계산하는 %와 같은 기능을 한다. 이를 사용하여 짝수인 경우에만 덧셈을 하도록 코드를 구성한다.


별찍기로 루프문을 연습해보자.




for문

자바스크립트를 배울 때 반복문에는 여러 종류가 있었다. 이번엔 for문의 형태로 반복문을 보다 더 간단하게 정의해보자. 문법은 다음과 같다.

for 변수 in 시작..끝 loop
      실행문;
end loop;

이제 이를 통해서 1부터 10까지 출력하는 반복문을 하나 작성해보겠다.
반복문을 돌 변수를 v_idx로 정하고 1부터 10까지 증가함에 따라 이를 출력해보겠다. 원하는대로 출력이 이루어지고 있다.

reverse
for문을 사용할 때 반복문이 반대로 돌게 하는 방법도 있다. 이 때 사용하는 것이 reverse이다.
똑같은 예문에 reverse를 붙여보도록 하겠다.

출력화면에서 볼 수 있듯이 10부터 거꾸로 출력하고 있다.

마찬가지로 for문을 중첩하여 *을 찍는 것도 가능하다.

while문

댓글

  1. 혹시
    while 문과
    loop 문으로

    **********
    *********
    ********
    *******
    ******
    *****
    ****
    ***
    **
    *

    이런식으로 별을 찍는건 어떻게 하나요?

    답글삭제

댓글 쓰기

이 블로그의 인기 게시물

데이터베이스 PL/SQL - 배열과 테이블

데이터베이스 PL/SQL 변수선언