运算符
编辑教程运算符
ABAP提供了一组丰富的运算符来操纵变量。 所有ABAP运算符分为四类 :
算术运算符 | |
---|---|
比较运算符 | |
按位运算符 | |
字符串运算符 |
算术运算符
算术运算符在数学表达式中使用的方式与在代数中使用的方式相同。 以下列表描述了算术运算符。 假设整数变量A保持20并且变量B保持40。
算术运算符 | 描述 |
---|---|
+(添加) | 在运算符的两侧添加值。 示例:A + B将给出60。 |
- (减法) | 从左边操作数中减去右边操作数。 示例:A - B将给出-20。 |
*(乘法) | 将运算符两侧的值相乘。 示例:A * B将给出800。 |
/(除法) | 用右边操作数除左边操作数。 示例:B / A将给出2。 |
MOD(模量) | 用右边操作数除左边操作数,并返回余数。 示例: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
比较运算符
让我们讨论不同操作数的各种类型的比较运算符。
比较运算符 | 描述 |
---|---|
=(相等测试)。 替代形式是EQ。 | 检查两个操作数的值是否相等,如果是,则条件为真。 示例(A = B)不为真。 |
<> (不等式检验)。 替代形式是NE。 | 检查两个操作数的值是否相等。 如果值不相等,则条件为真。 示例(A<> B)为真。 |
> (大于测试)。 替代形式是GT。 | 检查左操作数的值是否大于右操作数的值。 如果是,则条件变为true。 示例(A> B)不是真的。 |
< (小于测试)。 替代形式是LT。 | 检查左操作数的值是否小于右操作数的值。 如果是,则条件变为true。 示例(A |
> =(大于或等于)替代形式为GE。 | 检查左操作数的值是否大于或等于右操作数的值。 如果是,则条件变为true。 示例(A> = B)不是真的。 |
< =(小于或等于测试)。 替代形式是LE。 | 检查左操作数的值是否小于或等于右操作数的值。 如果是,则条件变为true。 示例(A |
a1 BETWEEN a2 AND a3(间隔测试) | 检查a1是否在a2和a3之间(包括)。 如果是,则条件变为真。 示例(A BETWEEN B和C)为真。 |
IS INITIAL | 如果变量的内容没有改变,并且它已被自动赋予其初始值,则条件为真。 示例(A IS INITIAL)不为真 |
不是初始 | 如果变量的内容已更改,则条件为真。 示例(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还提供了一系列可以用于构建布尔代数表达式的逐位逻辑运算符。 位运算符可以使用括号等组合在复杂表达式中。
按位运算符 | 说明 |
---|---|
BIT-NOT | 一元运算符,将十六进制数中的所有位翻转为相反的值。 例如,将此运算符应用于具有位级值10101010(例如“AA")的十六进制数将给出01010101。 |
BIT-AND | 此二进制运算符使用布尔AND运算符逐位比较每个字段。 |
BIT-XOR | 二进制运算符,使用布尔XOR(异或)运算符逐位比较每个字段。 |
BIT-OR | 二进制运算符,使用布尔OR运算符逐位比较每个字段。 |
例如,以下是真值表,其示出了当对包含在字段A和字段B中的两个比特值应用布尔AND,OR或XOR运算符时生成的值。
字段A | 字段B | 和 | 要么 | XOR |
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 | 1 |
1 | 0 | 0 | 1 | 1 |
1 | 1 | 1 | 1 | 0 |
字符串运算符
以下是字符串运算符的列表
字符串操作符 | 说明 |
---|---|
CO(仅包含) | 检查A是否仅由B中的字符组成。 |
CN(不包含) | 检查A是否包含不在B中的字符。 |
CA(包含任何) | 检查A是否至少包含一个字符B. |
NA(不含任何) | 检查A是否不包含任何字符B. |
CS(包含字符串) | 检查A是否包含字符串B. |
NS(不包含字符串) | 检查A是否不包含字符串B. |
CP(包含模式) | 它检查A是否包含B中的模式。 |
NP(不包含模式) | 它检查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.
Mos固件,小电视必刷固件
ES6 教程
Vue.js 教程
JSON 教程
jQuery 教程
HTML 教程
HTML 5 教程
CSS 教程
CSS3 教程
JavaScript 教程
DHTML 教程
JSON在线格式化工具
JS在线运行
JSON解析格式化
jsfiddle中国国内版本
JS代码在线运行
PHP代码在线运行
Java代码在线运行
C语言代码在线运行
C++代码在线运行
Python代码在线运行
Go语言代码在线运行
C#代码在线运行
JSRUN闪电教程系统是国内最先开创的教程维护系统, 所有工程师都可以参与共同维护的闪电教程,让知识的积累变得统一完整、自成体系。
大家可以一起参与进共编,让零散的知识点帮助更多的人。
X
选择支付方式:
立即支付
¥
9.99
无法付款,请点击这里
金额: 0 元
备注:
转账时请填写正确的金额和备注信息,到账由人工处理,可能需要较长时间
备注:
转账时请填写正确的金额和备注信息,到账由人工处理,可能需要较长时间
如有疑问请联系QQ:565830900
正在生成二维码, 此过程可能需要15秒钟