zoukankan      html  css  js  c++  java
  • oracle的return、exit、continue的区别

    函数、预存中遇到return就会中断整个函数、预存,return后的代码不会再执行!

    exit是退出整个for循环,即结束该for循环,不执行该for循环了!

    continue是退出该for循环的当前这一次,开始下一次,直到该for循环结束!

    以下2个代码块都是印证return 的作用。代码块一没加“if··· then  end if;”代码块,而代码块二加上了“if··· then  end if;”代码块,两者的运行结果都是·一样的。

    -----代码块一:
    begin--一定要加上begin  end;因為oracle是代碼塊~~~
    for ii in 1..5 loop  
      sys.dbms_output.put_line('此處是return'); 
      return;
      sys.dbms_output.put_line('處於return後、當前循環里的代碼不執行!'); 
    end loop;
    sys.dbms_output.put_line('處於return後、非循環里的代碼不執行!!');
    end;
    ------------------------------------------------
    -----代码块二:
    begin
    for i in 1..5 loop
      if i=2 then
        sys.dbms_output.put_line('此處是return'); 
        return; 
        sys.dbms_output.put_line('處於return後、當前循環里的代碼不執行!');
      end if;  
    end loop;
    sys.dbms_output.put_line('處於return後、非循環里的代碼不執行!!');
    end;

    以上代码块一、代码块二的运行结果都是·一样的:

    所以,函数、预存中遇到return就会中断整个函数、预存,return后的代码不会再执行!

    以下2个代码块都是印证exit 的作用。代码块一没加“if··· then  end if;”代码块,而代码块二加上了“if··· then  end if;”代码块,两者的运行结果都是·一样的。

    --代码块一:
    begin
    for j in 1..5 loop 
      sys.dbms_output.put_line('此處是exit');
      exit;
      sys.dbms_output.put_line('處於exit後、當前循環里的代碼不執行!');   
    end loop;
    sys.dbms_output.put_line('處於exit後、非循環里的代碼也執行了~~');
    end;
    ---------------------------------------------
    --代码块二:
    begin
    for j in 1..5 loop
      if j=2 then
        sys.dbms_output.put_line('此處是exit');
        exit;
        sys.dbms_output.put_line('處於exit後、當前循環里的代碼不執行!'); 
      end if; 
    end loop;
    sys.dbms_output.put_line('處於exit後、非循環里的代碼也執行了~~');
    end;

    以上代码块一、代码块二的运行结果都是·一样的:

    所以,exit是退出整个for循环,即结束该for循环,不执行该for循环了!

    以下2个代码块都是印证continue 的作用。代码块一没加“if··· then  end if;”代码块,而代码块二加上了“if··· then  end if;”代码块,两者的运行结果是不一样的:

    --代码块一
    begin
      for k in 1..5 loop
        sys.dbms_output.put_line('此處是continue');
        continue;
        sys.dbms_output.put_line('處於continue後、當前循環里的代碼不執行!');
      end loop;
      sys.dbms_output.put_line('處於continue後、非循環里的代碼也執行了~~~~~');
    end;
    
    --代码块二
    begin
      for k in 1..5 loop
        if k=3 then
          sys.dbms_output.put_line('此處是continue');
          continue;
          sys.dbms_output.put_line('處於continue後、當前循環里的代碼不執行!!');
        end if;
      end loop;
      sys.dbms_output.put_line('處於continue後、非循環里的代碼也執行了~~~~~');
    end;

    代码块一的结果:

    代码块二的结果:

    所以,continue是退出该for循环的当前这一次,开始下一次,直到该for循环结束!

  • 相关阅读:
    【最短路】BAPC2014 B Button Bashing (Codeforces GYM 100526)
    【链表】【模拟】Codeforces 706E Working routine
    【数论】【扩展欧几里得】Codeforces 710D Two Arithmetic Progressions
    【动态规划】【最短路】Codeforces 710E Generate a String
    【模拟】Codeforces 710C Magic Odd Square
    【模拟】Codeforces 710B Optimal Point on a Line
    【模拟】Codeforces 710A King Moves
    【模拟】Codeforces 705A Hulk
    【模拟】Codeforces 705B Spider Man
    【模拟】Codeforces 704A & 705C Thor
  • 原文地址:https://www.cnblogs.com/168-h/p/14783999.html
Copyright © 2011-2022 走看看