콘텐츠
ABAP 상수
이전 시간에 ABAP 에 대한 변수, 데이터 타입은 정리를 한 적이 있는데 이 내용에 이어 ABAP 에서는 다른 프로그래밍 언어와 같이 값이 변하지 않는 ‘상수’ 를 지정할 수 있다.
상수 선언 방법
상수는 ‘CONSTANTS’ 키워드를 이용해 선언 한다.
CONSTANTS c_pi TYPE p DECIMALS 2 VALUE '3.14'.
ABAP상수 또한, 다른 키워드 들과 같이 Chain Statement (:) 를 지원해 한번의 키워드 사용으로 여러 개의 상수를 선언할 수 있다.
CONSTANTS: c_pi TYPE p DECIMALS 2 VALUE '3.14',
c_e TYPE p DECIMALS 2 VALUE '2.72'.
ABAP이렇게 선언 한 상수를 변경하고 활성화를 하면 ‘The field “상수명” cannot be modified.’ 오류가 발생 한다.
상수를 사용하는 이유
위의 변수 명에서도 추측이 가능하듯, 특정 값 자체를 외우는 것 보단 키워드를 외우는 것이 편할 때 (위의 경우 원주율) 사용하면 편리하게 사용할 수 있다.
아니면, 계속 반복 적으로 사용 될 값을 상수로 정해 두어 프로그램 계산 식 등에 사용하면, 이후 값이 변경 되어야 할 때 모든 코드를 변경할 필요 없이 상수만 변경하면 된다.
ABAP 연산자
ABAP 에서도 데이터를 연산(or 계산)하기 위한 여러 연산자가 지원된다. 기본적인 연산자는 다음과 같다.
산술 연산자:
- + : 더하기
- – : 빼기
- * : 곱하기
- / : 나누기
참고로 산술 연산자는 Number 가 아닌 타입의 변수 끼리 연산 했을 때 Dump 에러가 발생한다.
산술 연산자 오류 발생 샘플 코드:
DATA: lv_data1 TYPE C LENGTH 5,
lv_data2 TYPE C LENGTH 5.
lv_data1 = 'a'.
lv_data2 = 'b'.
lv_data1 = lv_data1 + lv_data2.
write lv_data1.
ABAP비교 연산자:
설명을 만족하면 true 를 반환 한다.
ABAP은 기호로 된 비교 연산자를 영어 약자로도 사용할 수 있다. 괄호 안의 약어는 앞의 기호와 같은 역할을 한다.
- = : 두 값이 동일할 때 (EQ, Equal)
- <> : 두 값이 서로 다를 때 (NE, Not Equal)
- a < b : a가 b 보다 작을 때 (LT, Less Than)
- a > b : a가 b 보다 클 때 (GT, Greater Than)
- a <= b : a가 b 보다 작거나 같을 때 (LE, Less Than or Equal)
- a >= b : a가 b 보다 크거나 같을 때 (GE, Greater Than or Equal)
논리 연산자:
설명을 만족하면 true 를 반환 한다.
- AND : 두 조건이 모두 true 일 때
- OR : 두 조건 중 하나라도 true 일 때
- NOT : 결과를 반전 (예: true 였으면 false 로 바꾸어줌)
샘플 코드:
아래 코드는 ABAP 의 조건문을 이용해 실제 true 와 false 중 무엇을 출력 하는지 테스트 해본 코드 이다.
DATA: lv_data1 TYPE n LENGTH 5,
lv_data2 TYPE n LENGTH 5.
lv_data1 = '10'.
lv_data2 = '5'.
IF lv_data1 = lv_data2.
WRITE '조건 만족'.
ELSE.
WRITE '조건 불만족'. "출력
ENDIF.
IF lv_data1 <> lv_data2.
WRITE '조건 만족'. "출력
ELSE.
WRITE '조건 불만족'.
ENDIF.
ABAP