iT邦幫忙

2024 iThome 鐵人賽

DAY 7
0
自我挑戰組

ABAP 基礎30天學習筆記系列 第 7

Day07_運算子 & 字串處理

  • 分享至 

  • xImage
  •  

原文連結:Processing Data

運算子

一些基礎的運算子:

DATA result TYPE i. 

result = 2 + 3.   "+ 加"
result = 2 - 3.   "- 減"
result = 2 * 3.   "* 乘"
result = 2 / 3.   "/ 除"
result = 2 DVI 3.  "除數"
result = 2 MOD 3.  "餘數"

常用函數

result = sqrt( 2 ).   "平方"
result = ipow( base = 2 exp = 3 ).   "冪次方"
  • sqrt():平方,如sqrt(2,2)=4
  • iPow():可表示冪次方,冪的值在後,如iPow(base = 2,exp = 3)= 2的3次方 =8

處理流程

基本上就是函數優先運算子,然後先乘除後加減這樣
!!!注意:數值與運算子需間隔空格,否則會有語法錯誤

字串處理

字串模板 (String templates)

TYPES t_amount TYPE  p LENGTH 8 DECIMALS 2.

DATA amount1  TYPE t_amount VALUE '1.20'.
DATA amount2  TYPE t_amount VALUE '2.10'.

"字串模板包在||之間"
DATA(text) = |Total: { amount1 + amount2 } EUR|.  "Total: 3.30 EUR"

與一般字串資料不同的是,字串模板可在文字間嵌入表達式,可以當作更方便把變數賦值給字串的方法。

    DATA the_date  TYPE d VALUE '19891109'.
    DATA my_number TYPE p LENGTH 3 DECIMALS 2 VALUE '-273.15'
    
*    Date.
    DATA(text) = |{ the_date             }|.  "19891109"
    DATA(text) = |{ the_date Date = ISO  }|.  "1989-11-09"
    DATA(text) = |{ the_date Date = USER }|.  "11/09/1989"

*    Number.
    DATA(text) = |{ my_number                    }|.  "-273.15"
    DATA(text) = |{ my_number NUMBER = USER      }|.  "-273.15"
    DATA(text) = |{ my_number SIGN = RIGHT       }|.  "273.15-"
    DATA(text) = |{ my_number STYLE = SCIENTIFIC }|.  "-2.7315E+02"

常用於代表時間的變數DATE,ISO代表輸出國際標準模式,USER則是使用者定義的時間格式。
而對於數值,NUMBER可以決定輸出格式,SIGN決定符號位置及顯示與否,STYLE則可顯示預定義的格式,如科學符號之類的。

字串結合運算子

    DATA part1 TYPE string VALUE `Hello`.
    DATA part2 TYPE string VALUE `World`.
    
    DATA amount1  TYPE t_amount VALUE '1.20'.
    DATA amount2  TYPE t_amount VALUE '2.10'.
    
    DATA(text) = part1 && | | && part2.  "Hello World"
    DATA(text) = |{ amount1 } + { amount2 }| &&
                 | = | &&
                 |{ amount1 + amount2 }|.
                 "1.20 + 2.10 = 3.30"
                 
    out->write( text ).

在ABAP中,使用&&連結字串或被| |包裹的字串模板,若| |中沒有包裹任何文字,則可視為空格。

!!!注意:字串模板的{}也需與左右參數需間隔空格,否則會有語法錯誤。

學完運算子跟字串模板,緊接著要進入條件式了~


上一篇
Day06_變數與資料型態
下一篇
Day08_條件式
系列文
ABAP 基礎30天學習筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言