SAP ABAP - 案例控制语句



当您需要比较两个或多个字段时,使用 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 Control Statement

示例

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.
sap_abap_decisions.htm
广告