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循环结束!

  • 相关阅读:
    76、HTTP如何禁用缓存?如何确认缓存?
    多态与多态性,鸭子类型,内置方法,反射,异常处理
    继承的应用,继承实现原理,super(),多继承的代码规范,组合
    类的装饰器,绑定方法与非绑定方法,继承,继承背景下的属性查找
    面向对象,类与对象,__nit__方法,属性查找,隐藏属性
    xml模块、hashlib模块、subprocess模块、os与sys模块、configparser模块
    模块:re,json,pickle,time , datetime,random,猴子补丁
    区分py文件的两种用途,包的介绍和使用,日志模块
    模块的概念、使用,搜索路径与优先级,软件开发的目录规范
    三元表达式,列表、字典、集合生成式,生成器表达式,函数递归,匿名函数,面向过程编程
  • 原文地址:https://www.cnblogs.com/168-h/p/14783999.html
Copyright © 2011-2022 走看看