W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
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ù)學(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
讓我們討論不同操作數(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.
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ù)表達(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 |
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 | 1 |
1 | 0 | 0 | 1 | 1 |
1 | 1 | 1 | 1 | 0 |
以下是字符串運(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.
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: