2015년 2월 5일 목요일

[PLSQL 반복문, LOOP, FOR, WHILE 예제]임의의 수입력받아 그수까지의 합을 구하는 예제

[PLSQL 반복문, LOOP, FOR, WHILE 예제]임의의 수입력받아 그수까지의 합을 구하는 예제

Accept를 이용하여 숫자를 입력받고 1부터 그 수까지의 합을 구하세요

- basic loop문
- for loop문
- while loop문

--------------------------------------------------------------------------------------------------

1. BASIC LOOP 이용


SQL>edit a

set serveroutput on
accept p_num prompt 'Enter a number : '
create or replace procedure sum1
is
  v_sum number := 0;
  i number := 0;
begin
 
  loop
      i := i + 1;
      v_sum := v_sum + i;
      exit when  i >= &p_num ;
  end loop;
  dbms_output.put_line(&p_num || '까지 합은 ' || v_sum);
end;
/

SQL>@a

Enter a number : 10
구  10:      exit when  i >= &p_num ;
신  10:      exit when  i >= 10 ;
구  12:    dbms_output.put_line(&p_num || '까지 합은 ' || v_sum);
신  12:    dbms_output.put_line(10 || '까지 합은 ' || v_sum);

프로시저가 생성되었습니다.

SQL> exec sum1;
10까지 합은 55

PL/SQL 처리가 정상적으로 완료되었습니다.



2. FOR LOOP 이용

SQL>edit a1

set serveroutput on
accept p_num prompt 'Enter a number : '
create or replace procedure sum2
is
  v_sum number := 0;
begin
 
  for i in 1..&p_num loop
      v_sum := v_sum + i;
  end loop;
  dbms_output.put_line(&p_num || '까지 합은 ' || v_sum);
end;
/


SQL> @a1
Enter a number : 10
구  6:    for i in 1..&p_num loop
신  6:    for i in 1..10 loop
구  9:    dbms_output.put_line(&p_num || '까지 합은 ' || v_sum);
신  9:    dbms_output.put_line(10 || '까지 합은 ' || v_sum);

프로시저가 생성되었습니다.

SQL> exec sum2;
10까지 합은 55

PL/SQL 처리가 정상적으로 완료되었습니다.


3. WHILE LOOP 이용


SQL>edit a2

set serveroutput on
accept p_num prompt 'Enter a number : '
create or replace procedure sum3
is
  i number := 0;
  v_sum number := 0;
begin 
    while (i < &p_num) loop
      i := i + 1;
      v_sum := v_sum + i;    
  end loop;
  dbms_output.put_line(&p_num || '까지 합은 ' || v_sum);
end;
/


SQL>@a2

Enter a number : 10
구  6:    while (i < &p_num) loop
신  6:    while (i < 10) loop
구  10:    dbms_output.put_line(&p_num || '까지 합은 ' || v_sum);
신  10:    dbms_output.put_line(10 || '까지 합은 ' || v_sum);

프로시저가 생성되었습니다.

SQL> exec sum3
10까지 합은 55

PL/SQL 처리가 정상적으로 완료되었습니다. 

댓글 없음:

댓글 쓰기