abap case用法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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语句的用法有所帮助!

相关文档
最新文档