|
| » 首页 » 电脑_数码 » 硬件 » oracle的问题pl/sql |
oracle的问题pl/sql |
|
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表示什么 如果没有错运行结果是什么 |
![]() |
|
|
这段代码实际上是在求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; / 这段代码实际上是在求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》答案收集时间:2008-06-14 09:25:15 |