ABAP 关键字:COND

带有条件运算符COND的条件表达式会返回一个指定数据类型的值,否则引发一个基于类的异常。type可以是非泛型的数据类型。当返回值类型是唯一的,那么可以用字符 # 取代。
注*:不指定ELES时,当WHEN的逻辑表达式都为false时,会返回数据类型type的初始值。
基本语法:

COND type( [let_exp]
WHEN log_exp THEN [let_exp] result
…
[ELSE [let_exp] result )

简单案例一:

DATA lv_grade TYPE string.
DATA lv_score TYPE i VALUE '87'.

" lv_score重命名为x进行条件判断.
" 当lv_score大于60的时候,将值[及格]赋值给lv_grade.
lv_grade = COND #( LET x = lv_score IN
                   WHEN x = 100 THEN '优秀'
                   WHEN x > 60 THEN '及格'
                   ELSE '不及格' ).

它等价与IF条件分支语句:

IF lv_score = 100.
  lv_grade = '优秀'.
ELSEIF lv_score > 60.
  lv_grade = '及格'.
ELSE.
  lv_grade = '不及格'.
ENDIF.

简单案例二:

DATA LV_AMT TYPE I VALUE 80.
DATA LV_FLAG TYPE I VALUE 0.

" 由于lv_flag=0,没有指定ELES,会将初始值0赋给lv_amt.
LV_AMT = COND #( WHEN LV_FLAG = '1' THEN LV_AMT * 10 ).
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值