W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
ABAP提供了一組豐富的運算符來操縱變量。 所有ABAP運算符分為四類 :
1、算術運算符
2、比較運算符
3、按位運算符
4、字符串運算符
算術運算符在數(shù)學表達式中使用的方式與在代數(shù)中使用的方式相同。 以下列表描述了算術運算符。 假設整數(shù)變量A保持20并且變量B保持40。
編號 | 算術運算符和描述 |
---|---|
1 | +(添加) 在運算符的兩側(cè)添加值。 示例:A + B將給出60。 |
2 | - (減法) 從左邊操作數(shù)中減去右邊操作數(shù)。 示例:A - B將給出-20。 |
3 | *(乘法) 將運算符兩側(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
讓我們討論不同操作數(shù)的各種類型的比較運算符。
編號 | 比較運算符和描述 |
---|---|
1 | =(相等測試)。 替代形式是EQ。 檢查兩個操作數(shù)的值是否相等,如果是,則條件為真。 示例(A = B)不為真。 |
2 | <> (不等式檢驗)。 替代形式是NE。 檢查兩個操作數(shù)的值是否相等。 如果值不相等,則條件為真。 示例(A<> B)為真。 |
3 | > (大于測試)。 替代形式是GT。 檢查左操作數(shù)的值是否大于右操作數(shù)的值。 如果是,則條件變?yōu)閠rue。 示例(A> B)不是真的。 |
4 | < (小于測試)。 替代形式是LT。 檢查左操作數(shù)的值是否小于右操作數(shù)的值。 如果是,則條件變?yōu)閠rue。 示例(A |
5 | > =(大于或等于)替代形式為GE。 檢查左操作數(shù)的值是否大于或等于右操作數(shù)的值。 如果是,則條件變?yōu)閠rue。 示例(A> = B)不是真的。 |
6 | < =(小于或等于測試)。 替代形式是LE。 檢查左操作數(shù)的值是否小于或等于右操作數(shù)的值。 如果是,則條件變?yōu)閠rue。 示例(A |
7 | a1 BETWEEN a2 AND a3(間隔測試) 檢查a1是否在a2和a3之間(包括)。 如果是,則條件變?yōu)檎妗?/span> 示例(A BETWEEN B和C)為真。 |
8 | IS INITIAL 如果變量的內(nèi)容沒有改變,并且它已被自動賦予其初始值,則條件為真。 示例(A IS INITIAL)不為真 |
9 | 不是初始 如果變量的內(nèi)容已更改,則條件為真。 示例(A IS NOT INITIAL)為真。 |
注意 - 如果變量的數(shù)據(jù)類型或長度不匹配,則執(zhí)行自動轉(zhuǎn)換。 在比較不同數(shù)據(jù)類型的兩個值時,對一個或兩個值執(zhí)行自動類型調(diào)整。 轉(zhuǎn)換類型由數(shù)據(jù)類型和數(shù)據(jù)類型的首選順序決定。
以下是喜好的順序 :
如果一個字段是類型I,則另一個字段轉(zhuǎn)換為類型I.
如果一個字段是P類型,則另一個字段轉(zhuǎn)換為類型P.
如果一個字段是類型D,則另一個字段轉(zhuǎn)換為類型D.但是C和N類型不轉(zhuǎn)換,它們直接比較。 類似于類型T的情況。
如果一個字段是類型N,另一個是類型C或X,則兩個字段都轉(zhuǎn)換為類型P.
如果一個字段是類型C,另一個是類型X,則X類型轉(zhuǎn)換為類型C.
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
REPORT YS_SEP_08. DATA: A TYPE I. IF A IS INITIAL. WRITE: / 'A is assigned'. ENDIF.
上面的代碼產(chǎn)生以下輸出
A is assigned.
ABAP還提供了一系列可以用于構(gòu)建布爾代數(shù)表達式的逐位邏輯運算符。 位運算符可以使用括號等組合在復雜表達式中。
編號 | 按位運算符和說明 |
---|---|
1 | BIT-NOT 一元運算符,將十六進制數(shù)中的所有位翻轉(zhuǎn)為相反的值。 例如,將此運算符應用于具有位級值10101010(例如“AA")的十六進制數(shù)將給出01010101。 |
2 | BIT-AND 此二進制運算符使用布爾AND運算符逐位比較每個字段。 |
3 | BIT-XOR 二進制運算符,使用布爾XOR(異或)運算符逐位比較每個字段。 |
4 | BIT-OR 二進制運算符,使用布爾OR運算符逐位比較每個字段。 |
例如,以下是真值表,其示出了當對包含在字段A和字段B中的兩個比特值應用布爾AND,OR或XOR運算符時生成的值。
字段A | 字段B | 和 | 要么 | XOR |
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 | 1 |
1 | 0 | 0 | 1 | 1 |
1 | 1 | 1 | 1 | 0 |
以下是字符串運算符的列表 -
編號 | 字符串操作符和說明 |
---|---|
1 | CO(僅包含) 檢查A是否僅由B中的字符組成。 |
2 | CN(不包含) 檢查A是否包含不在B中的字符。 |
3 | CA(包含任何) 檢查A是否至少包含一個字符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.
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: