» 首页 » 电脑_数码 » 硬件 » oracle的问题pl/sql

oracle的问题pl/sql

SET SERVEROUTPUT ON
DECLARE
v_total NUMBER(8):=0;
v_ni NUMBER(8):=0;
J NUMBER(5);
BEGIN
FOR I IN 1..5
LOOP
J:=1;
v_ni:=1;
WHILE J<=I
LOOP
v_ni:= v_ni*J;
J:=J+1;
END LOOP;
v_total:=v_total+v_ni;

这段代码有没有错?
为什么有两个loop却只有一个end loop
for i in 1..5表示什么
如果没有错运行结果是什么


这段代码有错,的确少了end loop,代码最后还应加上END;
这段代码实际上是在求5的阶乘,最后如果打印v_total,加上DBMS_OUTPUT.PUT_LINE(v_total);这条语句,可以看到输出结果120


FOR loop_counter IN[REVERSE] low_bound..high_bound LOOP
语句序列;
END LOOP;
其中:IN ----表示从小值到大值
IN REVERSE ----表示从大值到下值
for i in 1..5 就是 i 从1取到5,每次加1

再贴一遍修改后的代码
DECLARE
v_total NUMBER(8):=0;
v_ni NUMBER(8):=0;
J NUMBER(5);
BEGIN
FOR I IN 1..5
LOOP
J:=1;
v_ni:=1;
WHILE J<=I
LOOP
v_ni:= v_ni*J;
J:=J+1;
END LOOP;
END LOOP;
v_total:=v_total+v_ni;
DBMS_OUTPUT.PUT_LINE(v_total);
END;
/

这段代码有错,的确少了end loop,代码最后还应加上END;
这段代码实际上是在求5的阶乘,最后如果打印v_total,加上DBMS_OUTPUT.PUT_LINE(v_total);这条语句,可以看到输出结果120


FOR loop_counter IN[REVERSE] low_bound..high_bound LOOP
语句序列;
END LOOP;
其中:IN ----表示从小值到大值
IN REVERSE ----表示从大值到下值
for i in 1..5 就是 i 从1取到5,每次加1

再贴一遍修改后的代码
DECLARE
v_total NUMBER(8):=0;
v_ni NUMBER(8):=0;
J NUMBER(5);
BEGIN
FOR I IN 1..5
LOOP
J:=1;
v_ni:=1;
WHILE J<=I
LOOP
v_ni:= v_ni*J;
J:=J+1;
END LOOP;
END LOOP;
v_total:=v_total+v_ni;
DBMS_OUTPUT.PUT_LINE(v_total);
END;
/

 相关问题
·oracle的问题pl/sql
·有什么了解人性的文章吗,不要卡耐基的。。
·求英语八哥8.1注册码
··电脑的主板“七彩虹945\"那个945是指什么东西
·大家帮忙参谋一下,我想买台电脑,三千左右,什...
·帮忙造个小段落
·300分紧急求帮助
·想配台主机
·在officeword中空格出问题
·关于显示芯片 ATI Radeon X1200 Series的看法
·请各位帮帮我,哪里能下载央视的赈灾晚会?
·高手帮我看看进程
·CPU:AMD 4800+ 显卡: 8600GT的配什么主板好(要华...
·解压密码文件
·Adminustrator用户的问题

 《oracle的问题pl/sql》答案收集时间:2008-06-14 09:25:15



©2007 电脑技术问答录