Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops 尝试在Pl/SQL中将while循环转换为基本循环_Loops_Plsql - Fatal编程技术网

Loops 尝试在Pl/SQL中将while循环转换为基本循环

Loops 尝试在Pl/SQL中将while循环转换为基本循环,loops,plsql,Loops,Plsql,这就是我目前所拥有的 预期结果: 1+1 = 2 1+2 = 3 1+3 = 4 1+4 = 5 then 2+1 = 3 2+2 = 4 so on until 4+4 = 8* 我尝试过的代码: SET SERVEROUTPUT ON DECLARE v_i number := 1; v_j number := 1; v_x number := 0; BEGIN WHILE v_i < 5 LOOP WHILE v_j < 5

这就是我目前所拥有的

预期结果

1+1 = 2 1+2 = 3 1+3 = 4 1+4 = 5 then 
2+1 = 3 2+2 = 4 so on until 4+4 = 8*

我尝试过的代码:

SET SERVEROUTPUT ON
DECLARE
    v_i number := 1;
    v_j number := 1;
    v_x number := 0;
BEGIN
    WHILE v_i < 5 LOOP
        WHILE v_j < 5 LOOP
             v_x := v_i + v_j;
             DBMS_OUTPUT.PUT_LINE(v_i||'+'||v_j||' is: '||v_x);
             v_j := v_j +1;
        END LOOP;
        v_i := v_i + 1;
        v_j := 1;
    END LOOP;
    END;
    /
    SET SERVEROUTPUT OFF

这是一个简单的逻辑错误

我不知道PI/SQL,但据我所知,这可能会满足您的需要。为了清晰起见,我使用了缩进,如果PI/SQL中不允许,请将其删除

SET SERVEROUTPUT ON
DECLARE
v_i number := 1;
v_j number := 1;
v_x number := 0;
BEGIN
LOOP
   v_x := v_i + v_j;
   DBMS_OUTPUT.PUT_LINE(v_i||'+'||v_j||' is: '||v_x);
   v_j := v_j + 1;
   IF v_j = 5 THEN
      IF v_i < 4 THEN
        v_i := v_i + 1;
        v_j := 1; 
      ELSE   
        EXIT;
      END IF;
   END IF;
END LOOP;
END;
/
SET SERVEROUTPUT OFF
打开服务器输出
声明
v_i编号:=1;
v_j数:=1;
v_x数:=0;
开始
环
v_x:=v_i+v_j;
DBMS|u OUTPUT.PUT|u LINE(v|i | |‘+’| | v|j | | |是:‘| | v|x);
v_j:=v_j+1;
如果v_j=5,则
如果v_i<4,则
v_i:=v_i+1;
v_j:=1;
其他的
出口
如果结束;
如果结束;
端环;
结束;
/
关闭服务器输出

我不知道PI/SQL,但据我所知,这可能会满足您的需求。为了清晰起见,我使用了缩进,如果PI/SQL中不允许,请将其删除

SET SERVEROUTPUT ON
DECLARE
v_i number := 1;
v_j number := 1;
v_x number := 0;
BEGIN
LOOP
   v_x := v_i + v_j;
   DBMS_OUTPUT.PUT_LINE(v_i||'+'||v_j||' is: '||v_x);
   v_j := v_j + 1;
   IF v_j = 5 THEN
      IF v_i < 4 THEN
        v_i := v_i + 1;
        v_j := 1; 
      ELSE   
        EXIT;
      END IF;
   END IF;
END LOOP;
END;
/
SET SERVEROUTPUT OFF
打开服务器输出
声明
v_i编号:=1;
v_j数:=1;
v_x数:=0;
开始
环
v_x:=v_i+v_j;
DBMS|u OUTPUT.PUT|u LINE(v|i | |‘+’| | v|j | | |是:‘| | v|x);
v_j:=v_j+1;
如果v_j=5,则
如果v_i<4,则
v_i:=v_i+1;
v_j:=1;
其他的
出口
如果结束;
如果结束;
端环;
结束;
/
关闭服务器输出

您当前得到的输出是什么?对于while循环isSQL>@LOOP0 1+1是:2 1+2是:3 1+3是:4 1+4是:5 2+1是:3 2+2是:4 2+3是:5 2+4是:6 3+1是:4 3+2是:6 3+3是:7 4+1是:5 4+2是:6 4+3是:7 4+4是:8 PL/SQL过程成功完成。现在我无法将语法更改为基本循环这是跳出当我需要增加v_j时,循环的。你不是说v_i吗?你目前得到的输出是什么?对于while循环isSQL>@loop01+1是:21+2是:3 1+3是:4 1+4是:5 2+1是:3 2+2是:4 2+3是:5 2+4是:6 3+1是:6 3+4是:7 4+1是:5 4+2是:6 4+3是:7 4+4是:8 PL/SQL过程成功完成。现在我无法将语法更改为基本的loopthis当我需要增加v_j时,跳出循环。你是说维伊吗?