首页 > 解决方案 > 我写了这个,我的老师说“退出”有问题,但我不明白为什么

问题描述

这是代码,正如我所说,他说退出有问题。

DECLARE
    a number:=1;
    b number:=6;
    exit BOOLEAN;
    BEGIN
        exit:='FALSE'; 
        WHILE NOT exit LOOP
            IF a>=b THEN
                exit:='TRUE';
            ELSE
                a:=(a+1);
            END IF;
        END LOOP;
END;

标签: oracleplsql

解决方案


exit是一个语句,所以你不应该把它用作一个变量——它是一个保留字。只有语句本身将退出循环:

 DECLARE
    a number:=1;
    b number:=6;
 BEGIN
    LOOP
        IF a>=b THEN
            EXIT;
        ELSE
            a:=a+1;
        END IF;
    END LOOP;
 END;

您还可以EXITWHEN子句结合使用:

 DECLARE
    a number:=1;
    b number:=6;
 BEGIN
    LOOP
        EXIT WHEN a>=b;
        a:=a+1;
    END LOOP;
 END;

或者,您可以将逆条件作为WHILE子句添加到LOOP构造中:

 DECLARE
    a number:=1;
    b number:=6;
 BEGIN
    WHILE a < b LOOP
        a:=a+1;
    END LOOP;
 END;

推荐阅读