ABAP 신문법(New Syntax)인 switch, cond구문에 대한 설명이다.
switch, cond문법은 case문과 비슷한 구조, 기능이며 변수에 값을 설정할 때 다른 변수의 값에 따라 동적으로 값을 설정하는데 사용된다.
동적인 프로그램을 개발하는데 유리하고 if문을 썼을 때 보다 코딩 라인을 줄일 수 있다.
● cond 구문
DATA(lv_char) = 'B'.
DATA lv_num TYPE int1.
"case문 사용
CASE lv_char.
WHEN 'A'.
lv_num = 1.
WHEN 'B'.
lv_num = 2.
WHEN 'C'.
lv_num = 3.
WHEN 'D'.
lv_num = 4.
WHEN OTHERS.
ENDCASE.
(구 문법(case 사용))
DATA(lv_char) = 'B'.
DATA lv_num TYPE int1.
"if문 사용
IF lv_char EQ 'A'.
lv_num = 1.
ELSEIF lv_char EQ 'B'.
lv_num = 2.
ELSEIF lv_char EQ 'C'.
lv_num = 3.
ELSEIF lv_char EQ 'D'.
lv_num = 4.
ENDIF.
(구 문법(if 사용))
DATA(lv_char) = 'B'.
DATA(lv_num) = COND i( WHEN lv_char = 'A' THEN 1
WHEN lv_char = 'B' THEN 2
WHEN lv_char = 'C' THEN 3
WHEN lv_char = 'D' THEN 4 ).
(신 문법(cond 사용))
변수 선언(DATA(lv_num)과 동시에 조건에 맞는 값을 설정한다.
위의 i는 data type을 의미한다. data type을 명시함으로써 lv_num의 data type은 int type이 된다.
DATA(lv_char) = 'B'.
DATA lv_num2 TYPE int1.
lv_num2 = COND #( WHEN lv_char = 'A' THEN 1
WHEN lv_char = 'B' THEN 2
WHEN lv_char = 'C' THEN 3
WHEN lv_char = 'D' THEN 4 ).
(이미 선언된 변수의 값 설정)
당연히 이미 선언된 변수에 대해서도 cond / switch문을 사용할 수 있다.
Value구문에서 말했다시피 #은 operand type(피 연산자 type)이다. 정리하자면
'lv_num2이라는 변수에 int1의 data type으로 데이터를 설정하겠다'라는 뜻으로 해석할 수 있다.
ABAP New Syntax - Value
ABAP 신문법(New Syntax)인 Value구문에 대한 설명이다. Value문은 Insert/Append와 유사한 기능을 한다. Internal Table 또는 Structure에 초기 데이터를 생성하거나 데이터를 추가할 수 있는 기능을 가지고 있..
kyoshins.tistory.com
lv_char은 'B'이기 때문에 각각의 변수의 값은 2가 된다.
● switch 구문
DATA(lv_char) = 'B'.
DATA(lv_num3) = SWITCH #( lv_char
WHEN 'A' THEN 1
WHEN 'B' THEN 2
WHEN 'B' THEN 3
WHEN 'B' THEN 4 ).
(신 문법(switch 사용))
cond구문과 기능은 동일하며 참조가 되는 피 연산자(lv_char)가 먼저 나와야한다.(case문과 동일)
lv_char은 'B'이기 때문에 lv_num3 변수의 값은 2가 된다.
궁금한 사항들은 댓글을 남겨주시면 친절히 답변드리겠습니다.^^
'SAP > ABAP New Syntax' 카테고리의 다른 글
ABAP new syntax line_exists (0) | 2021.11.12 |
---|---|
Open SQL CASE문 사용법 (0) | 2021.09.29 |
ABAP New syntax - filter (0) | 2020.11.15 |
ABAP New Syntax - Value (3) | 2020.03.25 |
ABAP New Syntax - Inline 선언 (5) | 2020.03.24 |