2015-04-23 109 views
0

我有一个pl/sql编程问题:对于1..50之间的数字,您需要将偶数乘以5,奇数乘以3,然后找到所有数字之和结果。pl/sql偶和奇数块

所以我有这个迄今为止

DECLARE 
ln_num NUMBER :=0; 
ln_num1 NUMBER :=0; 
ln_num2 NUMBER :=0; 

BEGIN 
    for i in 1..50 loop 

     if mod(i,2) =0 then    
     ln_num:=i*5; 

     elsif mod(i,2) = 1 then 
     ln_num1:=i*3; 

     ln_num2 := ln_num+ln_num1; 
     dbms_output.put_line(ln_num2); 

     end if; 
    end loop; 
END; 

这给了我号码的最后名单,但我需要所有这些的总和。我想知道我错过了什么,如何解决这个问题?

感谢

+0

你正在做的所有的循环内的工作。您需要在循环中累加和,然后在循环后打印结果。 –

+0

我明白这里出了什么问题。谢谢您的帮助。 –

回答

0
SQL> DECLARE 
    2 ln_num NUMBER :=0; 
    3 ln_num1 NUMBER :=0; 
    4 ln_num2 NUMBER :=0; 
    5 
    6 BEGIN 
    7  for i in 1..50 loop 
    8 
    9   if mod(i,2) =0 then 
10   ln_num:=ln_num+i*5; -- changes 
11 
12   elsif mod(i,2) = 1 then 
13   ln_num1:=ln_num1+i*3; -- changes 
14 
15 
16   end if; 
17  end loop; 
18  ln_num2 := ln_num+ln_num1; 
19   dbms_output.put_line(' the result is ' || ln_num2); 
20 
21 END; 
22 
23 
24/
the result is 5125 

PL/SQL procedure successfully completed. 
+0

好吧,这是有道理的。在第10和13行搞砸了。非常感谢。 –