ABAP提供了一组丰富的运算符来 *** 纵变量。 所有ABAP运算符分为四类 :
01-算数运算符
02-比较运算符
03-按位运算符
04-字符串运算符
算术运算符在数学表达式中使用的方式与在代数中使用的方式相同。 以下列表描述了算术运算符。 假设整数变量A保持20并且变量B保持40。
算数运算符的例子:
不同 *** 作数的各种类型的比较运算符
注意 - 如果变量的数据类型或长度不匹配,则执行自动转换。 在比较不同数据类型的两个值时,对一个或两个值执行自动类型调整。 转换类型由数据类型和数据类型的首选顺序决定。
以下是自动转化的顺序 :
• 如果一个字段是类型I,则另一个字段转换为类型I.
• 如果一个字段是P类型,则另一个字段转换为类型P.
• 如果一个字段是类型D,则另一个字段转换为类型D.但是C和N类型不转换,它们直接比较。 类似于类型T的情况。
• 如果一个字段是类型N,另一个是类型C或X,则两个字段都转换为类型P.
• 如果一个字段是类型C,另一个是类型X,则X类型转换为类型C.
比较运算符例1:
比较运算符例1:
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)’。
例子:
* * * * * * * 定义【I】.【S】两个变量,为I型,即整数形。从后面的code可以看出,【I】是代表循环多少次,【S】是代表想加的1,2,3...自然数连加后的结果。DATA: I TYPE I,
S TYPE I.
* * * * * * *赋初值,【I】的值为1,【S】的值0。
I = 1.
S = 0.
* * * * * * *
* 【While....end while】这是一个循环。"WHILE" 顾名思义,就是当什么什么条件满足的时候,才去做什么事情。
*初值: I = 1. S = 0.
*第一次进while...endwhile里面。 S = S + I,于是S变成了1. I = I + 1. 于是, I变成了2。
这时I是《= 10的,继续做循环哦。
*第二次进while...endwhile里面。 S = S + I,于是S变成了3. I = I + 1. 于是, I变成了3。
实现了1 + 2 的功能,结果存在S里。 这时I是《= 10的,继续做循环哦。
*第三次进while...endwhile里面。 S = S + I,于是S变成了6. I = I + 1. 于是, I变成了4。
实现了1 + 2 +3的功能,结果存在S里。 这时I是《= 10的,继续做循环。
*第四次进while...endwhile里面。 S = S + I,于是S变成了10. I = I + 1. 于是, I变成了5。
实现了1 + 2 +3 +4的功能,结果存在S里。 这时I是《= 10的,继续做循环。
继续第五次,第六次。。。。
*第十次进while...endwhile里面。I = I + 1. 于是, I变成了11。这时已经不满足I《= 10了条件了,结束循环。
* * * * * * *
WHILE I <= 10.
S = S + I.
I = I + 1.
ENDWHILE.
* * * * * * *结束循环,将S结果输出在报表上。 over.
WRITE: / '1+2+3+…+10=',S.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)