SAP ABAP - Case 控制语句

  • 简述

    当需要比较两个或多个字段时,使用 CASE 控制语句。
    CASE 控制语句的语法如下 -
    
    CASE <field>. 
     
    WHEN <abc>. 
       <statement block>.
       
    WHEN <def>. 
       <tatement block>.
       
    WHEN <pqr>. 
       <statement block>. 
    ...... 
    ...... 
    ......  
    WHEN <xyz>. 
       <statement block>. 
      
    WHEN OTHERS. 
       <statement block>.  
    ENDCASE.
    
    以下规则适用于 CASE 语句 -
    • <field> 字段不能使用逻辑表达式。
    • CASE 语句中使用的字段字符串被视为 C 类型变量。
    • 如果 <field> 中显示的字段内容与 <abc>、<def>、<ghi> 到 <xyz> 字段之一相似,则执行 WHEN 子句后面的语句块。
    • 执行完 WHEN 语句中指定的所有条件后,程序继续处理 ENDCASE 语句之后的剩余语句。
    • 当 <field> 的值与 WHEN 子句的 <abc> 至 <xyz> 字段中指定的任何值都不匹配时,在程序中执行 WHEN OTHERS 子句。
    • 如果省略 WHEN OTHERS 子句,并且 <field> 的值与 WHEN 子句的 <abc> 到 <xyz> 字段中指定的任何值都不匹配,则程序将继续处理 ENDCASE 语句之后的剩余语句。
  • 流程图

    Case 控制声明
  • 例子

    
    Report YH_SEP_15.
      
    Data: Title_1(10) TYPE C,  
       Title_2(15) TYPE C.  
       
    Title_1 = 'ABAP'.
    Title_2 = 'Programming'.  
    CASE Title_2.
      
    WHEN 'ABAP'. 
       Write 'This is not the title'.  
       
    WHEN 'Tutorials'.
       Write 'This is not the title'.  
       
    WHEN 'Limited'.
       Write 'This is not the title'.
       
    WHEN 'Programming'.
       Write 'Yes, this is the title'.
       
    WHEN OTHERS.
       Write 'Sorry, Mismatch'.
        
    ENDCASE. 
    
    上面的代码产生以下输出 -
    
    Yes, this is the title.