上一节: SAP ABAP - 常量 & 字面量
上一节
下一节: SAP ABAP - 循环控制
下一节
SAP ABAP - 操作符
简述
ABAP 提供了一组丰富的运算符来操作变量。所有 ABAP 运算符分为四类 -
算术运算符
比较运算符
按位运算符
字符串运算符
算术运算符
算术运算符在数学表达式中的使用方式与在代数中的使用方式相同。以下列表描述了算术运算符。假设整数变量 A 为 20,变量 B 为 40。
序号
算术运算符及说明
1
+ (Addition)
在运算符两侧添加值。示例:A + B 将得到 60。
2
− (Subtraction)
从左手操作数中减去右手操作数。示例:A − B 将给出 -20。
3
* (Multiplication)
将运算符两侧的值相乘。示例:A * B 将得到 800。
4
/ (Division)
将左手操作数除以右手操作数。示例:B / A 将给出 2。
5
MOD (Modulus)
将左手操作数除以右手操作数并返回余数。示例: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
= (equality test). Alternate form is EQ.
检查两个操作数的值是否相等,如果相等则条件为真。示例 (A = B) 不正确。
2
<> (Inequality test). Alternate form is NE.
检查两个操作数的值是否相等。如果值不相等,则条件成立。示例 (A <> B) 为真。
3
> (Greater than test). Alternate form is GT.
检查左操作数的值是否大于右操作数的值。如果是,则条件成立。示例 (A > B) 不正确。
4
< (Less than test). Alternate form is LT.
检查左操作数的值是否小于右操作数的值。如果是,则条件成立。示例 (A < B) 为真。
5
>= (Greater than or equals) Alternate form is GE.
检查左操作数的值是否大于或等于右操作数的值。如果是,则条件成立。示例 (A >= B) 不正确。
6
<= (Less than or equals test). Alternate form is LE.
检查左操作数的值是否小于或等于右操作数的值。如果是,则条件成立。示例 (A <= B) 为真。
7
a1 BETWEEN a2 AND a3 (Interval test)
检查 a1 是否位于 a2 和 a3 之间(含)。如果是,则条件成立。示例(A BETWEEN B AND C)正确。
8
IS INITIAL
如果变量的内容未更改并且已自动为其分配初始值,则条件为真。示例 (A IS INITIAL) 不正确
9
IS NOT INITIAL
如果变量的内容已更改,则条件变为 true。示例(A 不是首字母)正确。
Note− 如果变量的数据类型或长度不匹配,则执行自动转换。在比较不同数据类型的两个值时,对其中一个或两个值执行自动类型调整。转换类型由数据类型和数据类型的优先顺序决定。
以下是优先顺序 -
如果一个字段是类型 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还提供了一系列可用于构建布尔代数表达式的按位逻辑运算符。位运算符可以使用括号等组合在复杂的表达式中。
序号
位运算符及说明
1
BIT-NOT
将十六进制数中的所有位翻转为相反值的一元运算符。例如,将此运算符应用于具有位级别值 10101010(例如“AA”)的十六进制数将得到 01010101。
2
BIT-AND
该二元运算符使用布尔 AND 运算符逐位比较每个字段。
3
BIT-XOR
使用布尔 XOR(异或)运算符逐位比较每个字段的二元运算符。
4
BIT-OR
使用布尔 OR 运算符逐位比较每个字段的二元运算符。
例如,下面的真值表显示了对字段 A 和字段 B 中包含的两位值应用布尔 AND、OR 或 XOR 运算符时生成的值。
场A
B区
和
或者
自由的
0
0
0
0
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
0
字符串运算符
以下是字符串运算符的列表 -
序号
字符串运算符及说明
1
CO (Contains Only)
检查 A 是否仅由 B 中的字符组成。
2
CN (Not Contains ONLY)
检查 A 中是否包含 B 中不存在的字符。
3
CA (Contains ANY)
检查 A 是否至少包含 B 的一个字符。
4
NA (NOT Contains Any)
检查A是否不包含B的任何字符。
5
CS (Contains a String)
检查A中是否包含字符串B。
6
NS (NOT Contains a String)
检查A中是否不包含字符串B。
7
CP (Contains a Pattern)
它检查 A 是否包含 B 中的模式。
8
NP (NOT Contains a Pattern)
它检查 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.
上一节: SAP ABAP - 常量 & 字面量
上一节
下一节: SAP ABAP - 循环控制
下一节
查看笔记 分享笔记
笔记内容:
称呼:
Email:
站点:
分享笔记 重置
分类导航
前端
Ajax 教程
Angular 教程
Aurelia 教程
Bootstrap 教程
ChartJS 教程
CSS 教程
ES6 教程
FontAwesome 教程
HTML 教程
HTML 字符集 教程
HTML 游戏 教程
JavaScript 教程
jQuery 教程
Less 教程
React 教程
Sass 教程
Stylus 教程
TypeScript 教程
Unity 教程
Vue.js 教程
WebAssembly 教程
XAML 教程
颜色 教程
服务端
C# 教程
C++ 教程
COBOL 教程
C语言 教程
Fortran 教程
Go 教程
Groovy 教程
Java 教程
JSP 教程
JVM 教程
Kotlin 教程
Lisp 教程
Lua 教程
Node.js 教程
Pascal 教程
Perl 教程
PHP 教程
Python 教程
Python 3 教程
Ruby 教程
Rust 教程
Scala 教程
Spring 教程
Spring Boot 教程
Spring Cloud 教程
VB.Net 教程
移动端
Android 教程
IOS 教程
Objective-C 教程
React Native 教程
Swift 教程
小程序 教程
数据库
Access 教程
DB2 教程
Mariadb 教程
Memcached 教程
MongoDB 教程
MySQL 教程
Neo4j 教程
PL/SQL 教程
PostgreSQL 教程
Redis 教程
SQL 教程
SQL Server 教程
SQLite 教程
T-SQL 教程
数据格式
Jackson 教程
JSON 教程
SVG 教程
XML 教程
开发工具
ActiveMQ 教程
Ant 教程
Apache HttpClient 教程
Apache POI PPT 教程
AWS 教程
Docker 教程
ElasticSearch 教程
ExpressJS 教程
GIT 教程
GitLab 教程
Google Maps 教程
Gradle 教程
Java NIO 教程
JavaFX 教程
JavaMail 教程
JDBC 教程
jMeter 教程
JPA 教程
jsoup 教程
Junit 教程
KoaJS 教程
Kubernetes 教程
Log4j 教程
Logstash 教程
Lucene 教程
Makefile 教程
Maven 教程
RESTful 教程
Sed 教程
SEO 教程
Servlet 教程
SLF4J 教程
Socket.IO 教程
Struts 教程
SVN 教程
TestNG 教程
UML 教程
UNIX / LINUX 教程
WebSocket 教程
WPF 教程
xStream 教程
区块链 教程
数据处理
Flink 教程
Flume 教程
Hadoop 教程
Hbase 教程
Hive 教程
Kafka 教程
Kibana 教程
MapReduce 教程
MATLAB 教程
MyBatis 教程
Pig 教程
R语言 教程
Solr 教程
Spark 教程
Storm 教程
Zookeeper 教程
大数据分析 教程
数据仓库 教程
数据挖掘 教程
计算机基础
HTTP 教程
IPv4 教程
IPv6 教程
Ubantu 教程
WebServices 教程
嵌入式系统 教程
操作系统 教程
数据结构和算法 教程
汇编语言 教程
物联网 教程
电子电路基础 教程
编译器设计 教程
网站开发 教程
计算机 教程
计算机基础 教程
计算机网络 教程
设计模式 教程
AI
CNTK 教程
Keras 教程
PyTorch 教程
TensorFlow 教程
人工智能 教程
机器学习 教程
Python 技术
Django 教程
Flask 教程
NumPy 教程
Pandas 教程
Pillow 教程
PyGTK 教程
PyQt5 教程
PySpark 教程
pytest 教程
Python -数据科学 教程
Python MySQL 教程
Python 取证 教程
Python 数据结构 教程
Python 文本处理 教程
Python 网络编程 教程
Python 网页抓取 教程
Python 设计模式 教程
RxPY 教程
SciPy 教程
Seaborn 教程
SymPy 教程
wxPython 教程
框架
Laravel 教程
Web 图标Icon 教程
Web2py 教程
WebGL 教程
WebRTC 教程
WordPress 教程
Yii 教程
Zend Framework 教程
SAP
ABAP 教程
Crystal Reports 教程