SAP ABAP - 操作符

SAP ABAP - 操作符

上一节: 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 教程

黄金推荐

LOL:英雄联盟中的7位老司机,第2个不仅会开车,还会打的!
详解《vipabc英语怎么样》,vipabc的收费问题!
365体育管网登录网站

详解《vipabc英语怎么样》,vipabc的收费问题!

🕒 06-30 💰 3244
《软件项目风险的主要来源以及如何规范》
365体育管网登录网站

《软件项目风险的主要来源以及如何规范》

🕒 08-25 💰 3998