“FizzBuzz 問題”常用於考驗程序員的基本功,如何使用ABAP快速實現“FizzBuzz 問題”呢?本篇給出了一個參考示例 -
1 “FizzBuzz 問題”需求如下:
- 寫一個程序打印1到100這些數字。但是遇到數字爲3的倍數的時候,打印“Fizz”替代數字,5的倍數用“Buzz”代替,既是3的倍數又是5的倍數打印“FizzBuzz”。
- 每個數字要以“逗號+空格”分隔;
- 注意最後一個字符的尾部不要有“逗號”
2 輸出舉例:
1, 2, Fizz, 4, Buzz, .... 13, 14, FizzBuzz, 16, ... 97, 98, Fizz, Buzz
3 代碼實現
DATA: lv_number TYPE i VALUE 1,
lv_delimiter TYPE char2 VALUE ', ',
lv_string TYPE string,
lv_result TYPE string.
DO 100 TIMES.
IF lv_number MOD 15 = 0.
lv_string = 'FizzBuzz'.
ELSEIF lv_number MOD 3 = 0.
lv_string = 'Fizz'.
ELSEIF lv_number MOD 5 = 0.
lv_string = 'Buzz'.
ELSE.
lv_string = lv_number && ''. " int2 -> char(1)
ENDIF.
lv_number = lv_number + 1.
IF lv_result IS INITIAL.
lv_result = lv_string.
ELSE.
CONCATENATE lv_result lv_delimiter lv_string INTO lv_result RESPECTING BLANKS.
ENDIF.
ENDDO.
cl_demo_output=>display( lv_result ).
程序運行效果如下 -