2015년 1월 22일 목요일

[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 처리가 정상적으로 완료되었습니다.

댓글 없음:

댓글 쓰기