SAP ABAP 運(yùn)算符

2018-05-21 09:18 更新

ABAP提供了一組豐富的運(yùn)算符來(lái)操縱變量。 所有ABAP運(yùn)算符分為四類 :


1、算術(shù)運(yùn)算符


2、比較運(yùn)算符


3、按位運(yùn)算符


4、字符串運(yùn)算符


算術(shù)運(yùn)算符

算術(shù)運(yùn)算符在數(shù)學(xué)表達(dá)式中使用的方式與在代數(shù)中使用的方式相同。 以下列表描述了算術(shù)運(yùn)算符。 假設(shè)整數(shù)變量A保持20并且變量B保持40。

編號(hào)算術(shù)運(yùn)算符和描述
1

+(添加)
在運(yùn)算符的兩側(cè)添加值。 示例:A + B將給出60。

2

- (減法)

從左邊操作數(shù)中減去右邊操作數(shù)。 示例:A - B將給出-20。

3

*(乘法)

將運(yùn)算符兩側(cè)的值相乘。 示例:A * B將給出800。

4

/(除法)
用右邊操作數(shù)除左邊操作數(shù)。 示例:B / A將給出2。

5

MOD(模量)
用右邊操作數(shù)除左邊操作數(shù),并返回余數(shù)。 示例: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.

上面的代碼產(chǎn)生以下輸出 

3

比較運(yùn)算符

讓我們討論不同操作數(shù)的各種類型的比較運(yùn)算符。

編號(hào)比較運(yùn)算符和描述
1

=(相等測(cè)試)。 替代形式是EQ。

檢查兩個(gè)操作數(shù)的值是否相等,如果是,則條件為真。 示例(A = B)不為真。

2

<> (不等式檢驗(yàn))。 替代形式是NE。

檢查兩個(gè)操作數(shù)的值是否相等。 如果值不相等,則條件為真。 示例(A<> B)為真。

3

> (大于測(cè)試)。 替代形式是GT。

檢查左操作數(shù)的值是否大于右操作數(shù)的值。 如果是,則條件變?yōu)閠rue。 示例(A> B)不是真的。

4

< (小于測(cè)試)。 替代形式是LT。

檢查左操作數(shù)的值是否小于右操作數(shù)的值。 如果是,則條件變?yōu)閠rue。 示例(A

5

> =(大于或等于)替代形式為GE。

檢查左操作數(shù)的值是否大于或等于右操作數(shù)的值。 如果是,則條件變?yōu)閠rue。 示例(A> = B)不是真的。

6

< =(小于或等于測(cè)試)。 替代形式是LE。

檢查左操作數(shù)的值是否小于或等于右操作數(shù)的值。 如果是,則條件變?yōu)閠rue。 示例(A

7

a1 BETWEEN a2 AND a3(間隔測(cè)試)

檢查a1是否在a2和a3之間(包括)。 如果是,則條件變?yōu)檎妗?/span> 示例(A BETWEEN B和C)為真。

8

IS INITIAL

如果變量的內(nèi)容沒有改變,并且它已被自動(dòng)賦予其初始值,則條件為真。 示例(A IS INITIAL)不為真

9

不是初始

如果變量的內(nèi)容已更改,則條件為真。 示例(A IS NOT INITIAL)為真。

注意 - 如果變量的數(shù)據(jù)類型或長(zhǎng)度不匹配,則執(zhí)行自動(dòng)轉(zhuǎn)換。 在比較不同數(shù)據(jù)類型的兩個(gè)值時(shí),對(duì)一個(gè)或兩個(gè)值執(zhí)行自動(dòng)類型調(diào)整。 轉(zhuǎn)換類型由數(shù)據(jù)類型和數(shù)據(jù)類型的首選順序決定。

以下是喜好的順序 :

  • 如果一個(gè)字段是類型I,則另一個(gè)字段轉(zhuǎn)換為類型I.

  • 如果一個(gè)字段是P類型,則另一個(gè)字段轉(zhuǎn)換為類型P.

  • 如果一個(gè)字段是類型D,則另一個(gè)字段轉(zhuǎn)換為類型D.但是C和N類型不轉(zhuǎn)換,它們直接比較。 類似于類型T的情況。

  • 如果一個(gè)字段是類型N,另一個(gè)是類型C或X,則兩個(gè)字段都轉(zhuǎn)換為類型P.

  • 如果一個(gè)字段是類型C,另一個(gè)是類型X,則X類型轉(zhuǎn)換為類型C.

實(shí)例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.

上面的代碼產(chǎn)生以下輸出 

A is less than B 

實(shí)例2

REPORT YS_SEP_08. 

DATA: A TYPE I.
      IF A IS INITIAL.
      WRITE: / 'A is assigned'.
      ENDIF.

上面的代碼產(chǎn)生以下輸出 

A is assigned.

按位運(yùn)算符

ABAP還提供了一系列可以用于構(gòu)建布爾代數(shù)表達(dá)式的逐位邏輯運(yùn)算符。 位運(yùn)算符可以使用括號(hào)等組合在復(fù)雜表達(dá)式中。

編號(hào)按位運(yùn)算符和說(shuō)明
1

BIT-NOT

一元運(yùn)算符,將十六進(jìn)制數(shù)中的所有位翻轉(zhuǎn)為相反的值。 例如,將此運(yùn)算符應(yīng)用于具有位級(jí)值10101010(例如“AA")的十六進(jìn)制數(shù)將給出01010101。

2

BIT-AND

此二進(jìn)制運(yùn)算符使用布爾AND運(yùn)算符逐位比較每個(gè)字段。

3

BIT-XOR

二進(jìn)制運(yùn)算符,使用布爾XOR(異或)運(yùn)算符逐位比較每個(gè)字段。

4

BIT-OR

二進(jìn)制運(yùn)算符,使用布爾OR運(yùn)算符逐位比較每個(gè)字段。

例如,以下是真值表,其示出了當(dāng)對(duì)包含在字段A和字段B中的兩個(gè)比特值應(yīng)用布爾AND,OR或XOR運(yùn)算符時(shí)生成的值。

字段A字段B要么XOR
00000
01011
10011
11110

字符串運(yùn)算符

以下是字符串運(yùn)算符的列表 -

編號(hào)字符串操作符和說(shuō)明
1

CO(僅包含)

檢查A是否僅由B中的字符組成。

2

CN(不包含)

檢查A是否包含不在B中的字符。

3

CA(包含任何)

檢查A是否至少包含一個(gè)字符B.

4

NA(不含任何)

檢查A是否不包含任何字符B.

5

CS(包含字符串)

檢查A是否包含字符串B.

6

NS(不包含字符串)

檢查A是否不包含字符串B.

7

CP(包含模式)

它檢查A是否包含B中的模式。

8

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.

上面的代碼產(chǎn)生以下輸出:

P contains at least one character of Q.


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)