ORALCE分支

分支语语句

1.条件

  1)IF条件判断逻辑结构
  If条件判断逻辑结构有三种表达方式。
  ①表达式一:
IF  Condition  THEN
  Statement;
END   IF ;

  该表达式的功能为:若条件为真,执行then后的语句;否则,跳出条件语句执行end if后的语句。
  ②表达式二:
IF  Condition  THEN
  Statements_1;
ELSE
  Statements_2;
END   IF ;

  该表达式的功能为:如果条件为真执行then后的语句,否则执行else后的语句。
  ③表达式三:
IF  Condition1  THEN
  Statements_1;
ELSEIF Condition2 
THEN
  Statements_2;
ELSE
  Statements_3;
END   IF ;

  该表达式的功能为:如果if后的条件成立,执行then后面的语句,否则判断elseif后面的条件,条件成立执行第二个then后面的语句,否则执行else后的语句。这是条件语句嵌套。IF 可以嵌套,可以在IF 或IF ..ELSE语句中使用IF或IF…ELSE语句。

  2)CASE表达式
  CASE语句的基本格式如下:
CASE  Grade
  
WHEN   ' A '   THEN  DBMS_OUTPUT.PUT_LINE ( ' Excellent ' );
  
WHEN   ' B '   THEN  DBMS_OUTPUT.PUT_LINE ( ' Very Good ' );
  
WHEN   ' C '   THEN  DBMS_OUTPUT.PUT_LINE ( ' Good ' );
  
WHEN   ' D '   THEN  DBMS_OUTPUT.PUT_LINE ( ' Fair ' );
  
WHEN   ' F '   THEN  DBMS_OUTPUT.PUT_LINE ( ' Poor ' );
  
ELSE  DBMS_OUTPUT.PUT_LINE ( ' No such grade ' );
END   CASE ;

  CASE语句的功能:首先设定变量的值作为条件,然后顺序检查表达式,一旦从中找到与条件匹配的表达式值,就停止CASE语句的处理。

2.循环

  1)LOOP…EXIT…END循环控制语句
  LOOP循环语句是其中最基本的一种,格式如下:
LOOP
  Statements;
END  LOOP;

  这种循环语句是没有终止的,如果不人为控制的话,其中的Statements将会无限地执行。一般可以通过加入EXIT语句来终结该循环。

  2)WHILE…LOOP循环控制语句
  WHILE…LOOP循环控制语句的格式如下:
WHILE  Condition
LOOP
  Statements;
END  LOOP;

  WHILE…LOOP有一个条件与循环相联系,如果条件为TRUE,则执行循环体内的语句,如果结果为FALSE,则结束循环。

  3)FOR…LOOP循环控制语句
  FOR…LOOP循环控制语句的格式如下:
FOR  Counter  IN   [ REVERSE ]  Start_Range…End_Range
LOOP
  Statements;
END  LOOP;

  LOOP和WHILE循环的循环次数都是不确定的,FOR循环的循环次数是固定的,Counter是一个隐式声明的变量,初始值是Start_Range,第二个值是Start_Range + 1,直到End_Range,如果Start_Range等于End _Range,那么循环将执行一次。如果使用了REVERSE关键字,那么范围将是一个降序。

3.跳转
  GOTO语句的格式如下:
    GOTO LABEL;
  执行GOTO语句时,控制会立即转到由标签标记的语句(使用<<>>声明)。PL/SQL中对GOTO语句有一些限制,对于块、循环、IF语句而言,从外层跳转到内层是非法的。
DECLARE
  X         
NUMBER ( 3 );
  Y         
NUMBER ( 3 );
  V_COUNTER 
NUMBER ( 2 );
BEGIN
  X :
=   100 ;
  
FOR  V_COUNTER  IN   1  ..  10  LOOP
    
IF  V_COUNTER  =   4   THEN
      
GOTO  end_of_loop;
    
END   IF ;
    X :
=  X  +   10 ;
  
END  LOOP;
  
<< end_of_loop >>
  Y :
=  X;
  dbms_output.put_line(
' Y: ' || Y);
END ;

  输出结果为“Y:130”。

4.嵌套
  程序块的内部可以有另一个程序块这种情况称为嵌套。嵌套要注意的是变量,定义在最外部程序块中的变量可以在所有子块中使用,如果在子块中定义了与外部程序块变量相同的变量名,在执行子块时将使用子块中定义的变量。子块中定义的变量不能被父块引用。同样GOTO语句不能由父块跳转道子块中,反之则是合法的。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值