Plsql 简单的循环被卡住了
我试图运行此pl/sql代码,但显然它陷入了循环中。我认为逻辑是正确的Plsql 简单的循环被卡住了,plsql,Plsql,我试图运行此pl/sql代码,但显然它陷入了循环中。我认为逻辑是正确的 DECLARE v_num1 NUMBER := 1; v_num2 NUMBER := 1; v_total NUMBER := 0; BEGIN WHILE v_num2 < 6 LOOP v_total := v_num1 + v_num2; DBMS_OUTPUT.PUT_LINE(v_num1 || ' + ' || v_num2 || ' = ' ||
DECLARE
v_num1 NUMBER := 1;
v_num2 NUMBER := 1;
v_total NUMBER := 0;
BEGIN
WHILE v_num2 < 6 LOOP
v_total := v_num1 + v_num2;
DBMS_OUTPUT.PUT_LINE(v_num1 || ' + ' || v_num2 || ' = ' || v_total);
IF v_num2 = 5 THEN
v_num2 := 1;
v_num1 := v_num1 + 1;
ELSE
v_num2 := v_num2 + 1;
END IF;
END LOOP;
END;
声明
v_num1编号:=1;
v_num2编号:=1;
v_总数:=0;
开始
而v_num2<6圈
v_总计:=v_num1+v_num2;
DBMS|u输出.PUT|u行(v|num1 |‘+’v| | v|num2 | |‘=’| v|u总计);
如果v_num2=5,则
v_num2:=1;
v_num1:=v_num1+1;
其他的
v_num2:=v_num2+1;
如果结束;
端环;
结束;
好吧,每次v_num2变为5时,您都会将其重置为1,因此v_num2将始终小于6,循环将永远运行
IF v_num2 = 5 THEN
v_num2 := 1;
v_num1 := v_num1 + 1;
ELSE
v_num2 := v_num2 + 1;
END IF;
当v_num2<6循环时,您正在循环 但当v_num2为5时,则将其赋值为1 v_num2:=1
所以它永远不会等于6,因此将永远循环。是的,我瞎了。谢谢