• 退出嵌套的FOR LOOP循环(直接退出所有的循环)


    推出嵌套的FOR LOOP循环,有两种方法,第一种,使用GOTO语句跳出循环,跳到指定的位置,这时候,需要使用LABLE标记符;

     1 DECLARE
    2 V_COUNT NUMBER := 6;
    3 BEGIN
    4 FOR IDX1 IN 1 .. 5 LOOP
    5 DBMS_OUTPUT.PUT_LINE('first---' || IDX1);
    6 FOR IDX2 IN 1 .. 5 LOOP
    7 DBMS_OUTPUT.PUT_LINE('secord---' || IDX2);
    8 FOR IDX3 IN 1 .. 5 LOOP
    9 IF IDX3 = 1 THEN
    10 GOTO OUTER1;
    11 END IF;
    12 END LOOP;
    13 EXIT WHEN IDX2 = 2;
    14 END LOOP;
    15 EXIT WHEN IDX1 = 2;
    16 END LOOP;
    17
    18 <<OUTER1>>
    19 DBMS_OUTPUT.PUT_LINE('---------------------------');
    20 V_COUNT := 7;
    21 DBMS_OUTPUT.PUT_LINE('v_count---' || V_COUNT);
    22 END;

    结果:

    第二种方法,使用全局变量进行控制:

     1 DECLARE
    2 V_FLAG BOOLEAN := TRUE;
    3 BEGIN
    4 FOR IDX1 IN 1 .. 5 LOOP
    5 DBMS_OUTPUT.PUT_LINE('first---' || IDX1);
    6 FOR IDX2 IN 1 .. 5 LOOP
    7 DBMS_OUTPUT.PUT_LINE('secord---' || IDX2);
    8 FOR IDX3 IN 1 .. 5 LOOP
    9 IF IDX3 = 1 THEN
    10 V_FLAG := FALSE;
    11 DBMS_OUTPUT.PUT_LINE('third---' || IDX2);
    12 EXIT;
    13 END IF;
    14 END LOOP;
    15 EXIT WHEN V_FLAG = FALSE;
    16 END LOOP;
    17 EXIT WHEN V_FLAG = FALSE;
    18 END LOOP;
    19 DBMS_OUTPUT.PUT_LINE('---------------------------');
    20 DBMS_OUTPUT.PUT_LINE('exit');
    21 END;

    运行结果:

  • 相关阅读:
    模板:高精度求积
    模板:求n累加和
    模板:求A/B高精度值
    模板:堆
    模板:素数筛
    模板:前缀和
    模板:单调队列(Sliding Window)
    模板:最长上升子序列(LIS)
    [转]Asp.net mvc 网站之速度优化 -- 页面缓存
    [转]ASP.NET MVC3 + EF 性能优化解决方案以及最优架构
  • 原文地址:https://www.cnblogs.com/caroline/p/2418515.html
Copyright © 2020-2023  润新知