ABAP提供了一组丰富的运算符来操纵变量。 所有ABAP运算符分为四类 :
01-算数运算符
02-比较运算符
03-按位运算符
04-字符串运算符
01-算数运算符
算术运算符在数学表达式中使用的方式与在代数中使用的方式相同。 以下列表描述了算术运算符。 假设整数变量A保持20并且变量B保持40。
算数运算符的例子:
**算术运算符
REPORT zhy01_hy101_20220617_01 NO STANDARD PAGE HEADING.
DATA: A TYPE I VALUE 16,
B TYPE I VALUE 5,
Result_1 TYPE I,
Result_2 TYPE I.
Result_1 = A / B.
Result_2 = A mod B.
WRITE: / 'Result_1 =', Result_1 LEFT-JUSTIFIED,
/ 'Result_2 =', Result_2 LEFT-JUSTIFIED.
02-比较运算符
不同操作数的各种类型的比较运算符
注意 - 如果变量的数据类型或长度不匹配,则执行自动转换。 在比较不同数据类型的两个值时,对一个或两个值执行自动类型调整。 转换类型由数据类型和数据类型的首选顺序决定。
以下是自动转化的顺序 :
• 如果一个字段是类型I,则另一个字段转换为类型I.
• 如果一个字段是P类型,则另一个字段转换为类型P.
• 如果一个字段是类型D,则另一个字段转换为类型D.但是C和N类型不转换,它们直接比较。 类似于类型T的情况。
• 如果一个字段是类型N,另一个是类型C或X,则两个字段都转换为类型P.
• 如果一个字段是类型C,另一个是类型X,则X类型转换为类型C.
比较运算符例1:
**比较运算符例1:
REPORT zhy01_hy101_20220617_01 NO STANDARD PAGE HEADING.
DATA: A TYPE I VALUE 115,
B TYPE I VALUE 119.
IF A LT B."IF A < B.
WRITE: / 'A is less than B'.
ENDIF.
如果非小于的话则不输出结果
比较运算符例1:
**比较运算符例2:
REPORT zhy01_hy101_20220617_01 NO STANDARD PAGE HEADING.
DATA: A TYPE I.
IF A IS INITIAL.
WRITE: / 'A is assigned'.
ENDIF.
03按位运算符
ABAP还提供了一系列可以用于构建布尔代数表达式的逐位逻辑运算符。 位运算符可以使用括号等组合在复杂表达式中。
例如,以下是真值表,其示出了当对包含在字段A和字段B中的两个比特值应用布尔AND,OR或XOR运算符时生成的值。
真值表
说明:
1.(BIT-NOT)非门:逆转输入的高低状态。逻辑函数表示为F=A’。
2.和(BIT-AND)与门:所有输入为高时,才会有输出高。逻辑函数表示为F=A*B。
3.要么(BIT-OR)或门:所有输入为低时,才会有输出低。逻辑函数表示为F= A + B。
4.XOR(BIT-XOR)或非门:所有输入为低时,才会有输出高。逻辑函数表示为F=(A + B)’。
参考:
常见的逻辑门真值表:
七种常见的逻辑门真值表稻草人2468的博客-CSDN博客与或非门真值表
04-字符串运算符
例子:
**字符串运算符:
REPORT zhy01_hy101_20220617_01 NO STANDARD PAGE HEADING.
DATA: P(10) TYPE C VALUE 'APPLE',
Q(10) TYPE C VALUE 'CHAIR'.
IF P CA Q.
WRITE: / 'P contains at least one character of Q'.
ENDIF.















网友评论