abap case用法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ABAP CASE用法
在ABAP编程语言中,CASE语句是一种非常有用的控制结构。它允许根据给定的条件执行不同的代码块。使用CASE语句可以简化代码,并提高可读性和维护性。本文将介绍ABAP中CASE语句的用法,并提供一些示例。
CASE语句基本语法
ABAP中的CASE语句由CASE、WHEN和ENDCASE关键字组成。基本语法如下:
CASE <variable>
WHEN value1.
<code block1>
WHEN value2.
<code block2>
...
WHEN valueN.
<code blockN>
WHEN OTHERS.
<code block for all other values>
ENDCASE.
其中,<variable>是要检查的变量,value1, value2, ..., valueN是可能的取值,<code block1, ..., code blockN>是与每个取值相关联的代码块。当<variable>与某个取值匹配时,将执行对应的代码块。如果没有任何匹配项,则执行带有WHEN OTHERS.标签的代码块。
简单示例
以下示例演示了如何在ABAP中使用CASE语句:
DATA: lv_grade TYPE c.
lv_grade = 'A'.
CASE lv_grade.
WHEN 'A'.
WRITE: '优秀'.
WHEN 'B'.
WRITE: '良好'.
WHEN 'C'.
WRITE: '及格'.
WHEN OTHERS.
WRITE: '不及格'.
ENDCASE.
在上面的示例中,根据lv_grade的值,将打印不同的消息。由于lv_grade的值
为’A’,所以将打印出”优秀”。
多条件匹配
CASE语句还可以用于多个条件的匹配。以下示例展示了如何使用多个条件:
DATA: lv_age TYPE i.
lv_age = 25.
CASE.
WHEN lv_age < 18.
WRITE: '未成年人'.
WHEN lv_age >= 18 AND lv_age < 65.
WRITE: '成年人'.
WHEN lv_age >= 65.
WRITE: '老年人'.
ENDCASE.
在上面的示例中,根据lv_age的值,将打印不同的消息。由于lv_age的值为25,
所以将打印出”成年人”。
复杂类型匹配
除了简单类型(如字符、数字等)外,CASE语句还可以用于复杂类型(如结构体、表等)的匹配。以下示例展示了如何使用复杂类型:
TYPES: BEGIN OF ty_person,
name TYPE string,
age TYPE i,
END OF ty_person.
DATA: lt_persons TYPE TABLE OF ty_person,
ls_person TYPE ty_person.
ls_person-name = 'John'.
ls_person-age = 30.
APPEND ls_person TO lt_persons.
ls_person-name = 'Mary'.
ls_person-age = 25.
APPEND ls_person TO lt_persons.
LOOP AT lt_persons INTO ls_person.
CASE ls_person-name.
WHEN 'John'.
WRITE: / '姓名:John', ls_person-age.
WHEN 'Mary'.
WRITE: / '姓名:Mary', ls_person-age.
WHEN OTHERS.
WRITE: / '未知姓名', ls_person-age.
ENDCASE.
ENDLOOP.
在上面的示例中,根据ls_person-name的值,将打印不同的消息。由于ls_person-name的值分别为’John’和’Mary’,所以将分别打印出”姓名:John 30”和”姓名:Mary 25”。
总结
通过使用ABAP中的CASE语句,我们可以根据不同的条件执行不同的代码块。这种控制结构可以简化代码,并提高可读性和维护性。无论是简单类型还是复杂类型,CASE语句都可以很好地处理。希望本文对您理解ABAP中CASE语句的用法有所帮助!