条件分支:实施

条件分支是一种控制结构,允许您根据逻辑条件执行代码。
最常见的条件分支由一对关键字 IF 和 ENDIF 组成。仅当满足 IF 后的条件时,才会执行 IF 和 ENDIF 之间的 ABAP 代码块。
您可以添加更多扩展 IF 的代码块。ENDIF 通过使用关键字 ELSE 逐一构建结构,并使用关键字 ELSEIF 设置任意数量的块。通过添加关键字 ELSE,可确保始终仅执行其中一个 ABAP 代码块。如果缺少 ELSE,则不能执行任何 ABAP 代码块。
每个 IF . . ENDIF 关键字是必需的,每个 IF 都必须具有 ENDIF。
执行的 ABAP 代码块如下:
- 首先,对 IF 条件求值。如果满足,则执行相关的 ABAP 代码块,并且程序在 ENDIF 之后继续。
仅当未满足 IF 条件时,才对第一个 ELSEIF 求值后的条件。如果满足,则执行相关代码块,并且程序在 ENDIF 之后继续。
此操作针对所有 ELSEIF 条件连续完成。如果不满足任何条件且结构包含 ELSE,则执行 ELSE 之后的 ABAP 代码块。否则,将不执行任何 ABAP 代码块。
提示
逻辑条件

逻辑条件是运行时系统评估的比较、逻辑运算、表达式和函数的组合,用于确定条件为真还是假。
逻辑条件的最常见用例位于 IF. . 中的关键字 IF 或 ELSEIF 之后。ENDIF 结构。
第一个示例(在上图中)是一个简单的比较:如果两个数据对象(x 和 y)具有相同的值,则条件为真。
第二个示例(在上图中)有点复杂:x 的值大于或等于 y 且小于 y 值的两倍,或者小于或等于 y 且大于 y 值的两倍。
第三个示例(在上图中)使用算术函数 abs( ) 和逻辑表达式 BETWEEN <expression 1> AND <expression 2>. 如果 x 的绝对值介于 y 的绝对值与两次 y 的绝对值之间,则条件为真。
对于简单的值比较,可以使用运算符 =, <>, >, <, >=, and <=。您不仅可以比较数据对象的值,还可以比较许多其它表达式的值,如上例中的算术表达式 2 * y。
注意
运算符和含义
| 运算符 | 含义 |
|---|---|
| AND | 用于连接多个逻辑表达式,以创建仅在所有多个逻辑表达式均为真时为真的新逻辑表达式。 |
| OR | 用于连接多个逻辑表达式以创建新的逻辑表达式,如果至少有一个逻辑表达式为真,则该表达式为真。 |
| NOT | 如果逻辑表达式为真(反之亦然),使用 NOT 对逻辑表达式的取反将创建新的逻辑表达式,该表达式为假。 |
可以使用运算符 AND 和 OR 组合逻辑表达式和运算符 NOT 来否定表达式。如果没有括号,则"不"绑定比"与"和"与"强于"或"的绑定。
ABAP 知道一些特殊逻辑表达式:
- <data object> IS INITIAL 为 true 如果 <data object>包含其类型特定值
- 如果 <data object> 包含的值与类型特定的初始值不同,则 <data object> NOT INITIAL 为真
- <data object> BETWEEN <expression 1> AND <expression 2>
一些特殊的 ABAP 函数是谓词函数。 这意味着它们是逻辑条件本身。例如,Contains( ) 是用于比较字符型值的函数。
