SAP ABAP 运算符

SAP ABAP 运算符 图1
赛锐信息,SAP ERP定制,ERP定制

ABAP提供了一组丰富的运算符来操纵变量。 所有ABAP运算符分为四类 :

1、算术运算符

2、比较运算符

3、按位运算符

4、字符串运算符

算术运算符

算术运算符在数学表达式中使用的方式与在代数中使用的方式相同。 以下列表描述了算术运算符。 假设整数变量A保持20并且变量B保持40。

编号算术运算符和描述
1+(添加)
在运算符的两侧添加值。 示例:A + B将给出60。
2– (减法)从左边操作数中减去右边操作数。 示例:A – B将给出-20。
3*(乘法)将运算符两侧的值相乘。 示例:A * B将给出800。
4/(除法)
用右边操作数除左边操作数。 示例:B / A将给出2。
5MOD(模量)
用右边操作数除左边操作数,并返回余数。 示例:B MOD A将给出0。

例子

REPORT YS_SEP_08. 
DATA: A TYPE I VALUE 150, 
B TYPE I VALUE 50, 
Result TYPE I. 
Result =  A / B. 
WRITE / Result.

上面的代码产生以下输出 

3

比较运算符

让我们讨论不同操作数的各种类型的比较运算符。

编号比较运算符和描述
1=(相等测试)。 替代形式是EQ。检查两个操作数的值是否相等,如果是,则条件为真。 示例(A = B)不为真。
2<> (不等式检验)。 替代形式是NE。检查两个操作数的值是否相等。 如果值不相等,则条件为真。 示例(A<> B)为真。
3> (大于测试)。 替代形式是GT。检查左操作数的值是否大于右操作数的值。 如果是,则条件变为true。 示例(A> B)不是真的。
4< (小于测试)。 替代形式是LT。检查左操作数的值是否小于右操作数的值。 如果是,则条件变为true。 示例(A
5> =(大于或等于)替代形式为GE。检查左操作数的值是否大于或等于右操作数的值。 如果是,则条件变为true。 示例(A> = B)不是真的。
6< =(小于或等于测试)。 替代形式是LE。检查左操作数的值是否小于或等于右操作数的值。 如果是,则条件变为true。 示例(A
7a1 BETWEEN a2 AND a3(间隔测试)检查a1是否在a2和a3之间(包括)。 如果是,则条件变为真。 示例(A BETWEEN B和C)为真。
8IS INITIAL如果变量的内容没有改变,并且它已被自动赋予其初始值,则条件为真。 示例(A IS INITIAL)不为真
9不是初始如果变量的内容已更改,则条件为真。 示例(A IS NOT INITIAL)为真。

注意 – 如果变量的数据类型或长度不匹配,则执行自动转换。 在比较不同数据类型的两个值时,对一个或两个值执行自动类型调整。 转换类型由数据类型和数据类型的首选顺序决定。

以下是喜好的顺序 :

  • 如果一个字段是类型I,则另一个字段转换为类型I.
  • 如果一个字段是P类型,则另一个字段转换为类型P.
  • 如果一个字段是类型D,则另一个字段转换为类型D.但是C和N类型不转换,它们直接比较。 类似于类型T的情况。
  • 如果一个字段是类型N,另一个是类型C或X,则两个字段都转换为类型P.
  • 如果一个字段是类型C,另一个是类型X,则X类型转换为类型C.

实例1

REPORT YS_SEP_08. 

DATA: A TYPE I VALUE 115,
      B TYPE I VALUE 119.
      IF A LT B.
      WRITE: / 'A is less than B'.
      ENDIF.

上面的代码产生以下输出 

A is less than B 

实例2

REPORT YS_SEP_08. 

DATA: A TYPE I.
      IF A IS INITIAL.
      WRITE: / 'A is assigned'.
      ENDIF.

上面的代码产生以下输出 

A is assigned.

按位运算符

ABAP还提供了一系列可以用于构建布尔代数表达式的逐位逻辑运算符。 位运算符可以使用括号等组合在复杂表达式中。

编号按位运算符和说明
1BIT-NOT一元运算符,将十六进制数中的所有位翻转为相反的值。 例如,将此运算符应用于具有位级值10101010(例如“AA”)的十六进制数将给出01010101。
2BIT-AND此二进制运算符使用布尔AND运算符逐位比较每个字段。
3BIT-XOR二进制运算符,使用布尔XOR(异或)运算符逐位比较每个字段。
4BIT-OR二进制运算符,使用布尔OR运算符逐位比较每个字段。

例如,以下是真值表,其示出了当对包含在字段A和字段B中的两个比特值应用布尔AND,OR或XOR运算符时生成的值。

字段A字段B要么XOR
00000
01011
10011
11110

字符串运算符

以下是字符串运算符的列表 –

编号字符串操作符和说明
1CO(仅包含)检查A是否仅由B中的字符组成。
2CN(不包含)检查A是否包含不在B中的字符。
3CA(包含任何)检查A是否至少包含一个字符B.
4NA(不含任何)检查A是否不包含任何字符B.
5CS(包含字符串)检查A是否包含字符串B.
6NS(不包含字符串)检查A是否不包含字符串B.
7CP(包含模式)它检查A是否包含B中的模式。
8NP(不包含模式)它检查A是否不包含B中的模式。

例子

REPORT YS_SEP_08. 
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.

上面的代码产生以下输出:

P contains at least one character of Q.

相关文章

联系我们

联系我们

130-0752-1773

在线咨询:点击这里给我发消息

邮件:info@sapzx.com

工作时间:周一至周五9:00-18:00,节假日正常休息

关注微信
关注微信
分享本页
返回顶部