我找不到一个数字的阶乘问题的错误,不知道为什么我得到它
"
SQL> declare
2 n number;
3 i number;
4 fact number;
5 begin
6 n:=:n;
7 i:=1;
8 fact:=1;
9 while i<=n loop then
10 fact:=fact*i;
11 i:=i+1;
12 end loop;
13 dbms_output.put_line('factorial of this number is ' ||fact);
14 end;
15
16 /
SP2-0552: Bind variable "N" not declared.
"
当你在SQL*Plus中运行它时,使用替换(而不是绑定)变量-用&n
引用它,而不是:n
:
同时,修复循环;没有then
SQL> set serveroutput on
SQL> declare
2 n number;
3 i number;
4 fact number;
5 begin
6 n := &n;
7 i := 1;
8 fact := 1;
9
10 while i <= n loop
11 fact := fact * i;
12 i := i + 1;
13 end loop;
14
15 dbms_output.put_line('factorial of this number is ' || fact);
16
17 end;
18 /
Enter value for n: 4
old 6: n := &n;
new 6: n := 4;
factorial of this number is 24
PL/SQL procedure successfully completed.
SQL>