SAP ABAP-연산자
ABAP는 변수를 조작 할 수있는 다양한 연산자를 제공합니다. 모든 ABAP 연산자는 네 가지 범주로 분류됩니다.
- 산술 연산자
- 비교 연산자
- 비트 연산자
- 문자열 연산자
산술 연산자
산술 연산자는 대수에서 사용되는 것과 같은 방식으로 수학 표현식에서 사용됩니다. 다음 목록은 산술 연산자를 설명합니다. 정수 변수 A가 20을 보유하고 변수 B가 40을 보유한다고 가정하십시오.
| S. 아니. | 산술 연산자 및 설명 |
|---|---|
| 1 | + (Addition) 연산자의 양쪽에 값을 추가합니다. 예 : A + B는 60을 제공합니다. |
| 2 | − (Subtraction) 왼손 피연산자에서 오른손 피연산자를 뺍니다. 예 : A − B는 -20을 제공합니다. |
| 삼 | * (Multiplication) 연산자의 양쪽에있는 값을 곱합니다. 예 : A * B는 800을 제공합니다. |
| 4 | / (Division) 왼손 피연산자를 오른손 피연산자로 나눕니다. 예 : B / A는 2를 줄 것입니다. |
| 5 | MOD (Modulus) 왼손 피연산자를 오른손 피연산자로 나누고 나머지를 반환합니다. 예 : 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.
위의 코드는 다음 출력을 생성합니다.
3
비교 연산자
서로 다른 피연산자에 대한 다양한 유형의 비교 연산자에 대해 설명하겠습니다.
| S. 아니. | 비교 연산자 및 설명 |
|---|---|
| 1 | = (equality test). Alternate form is EQ. 두 피연산자의 값이 같은지 확인하고, 예이면 조건이 참이됩니다. 예 (A = B)는 사실이 아닙니다. |
| 2 | <> (Inequality test). Alternate form is NE. 두 피연산자의 값이 같은지 확인합니다. 값이 같지 않으면 조건이 참이됩니다. 예 (A <> B)가 참입니다. |
| 삼 | > (Greater than test). Alternate form is GT. 왼쪽 피연산자의 값이 오른쪽 피연산자의 값보다 큰지 확인합니다. 그렇다면 조건이 참이됩니다. 예 (A> B)가 사실이 아닙니다. |
| 4 | < (Less than test). Alternate form is LT. 왼쪽 피연산자의 값이 오른쪽 피연산자의 값보다 작은 지 확인합니다. 그렇다면 조건이 참이됩니다. 예 (A <B)가 참입니다. |
| 5 | >= (Greater than or equals) Alternate form is GE. 왼쪽 피연산자의 값이 오른쪽 피연산자의 값보다 크거나 같은지 확인합니다. 그렇다면 조건이 참이됩니다. 예 (A> = B)가 사실이 아닙니다. |
| 6 | <= (Less than or equals test). Alternate form is LE. 왼쪽 피연산자의 값이 오른쪽 피연산자의 값보다 작거나 같은지 확인합니다. 그렇다면 조건이 참이됩니다. 예 (A <= B)가 참입니다. |
| 7 | a1 BETWEEN a2 AND a3 (Interval test) a1이 a2와 a3 (포함) 사이에 있는지 확인합니다. 그렇다면 조건이 참이됩니다. 예 (A BETWEEN B와 C)가 참입니다. |
| 8 | IS INITIAL 변수의 내용이 변경되지 않고 자동으로 초기 값이 할당 된 경우 조건이 참이됩니다. 예 (A IS INITIAL)가 참이 아닙니다. |
| 9 | IS NOT INITIAL 변수의 내용이 변경되면 조건이 참이됩니다. 예 (A IS NOT INITIAL)가 참입니다. |
Note− 데이터 유형 또는 변수 길이가 일치하지 않으면 자동 변환이 수행됩니다. 서로 다른 데이터 유형의 두 값을 비교하면서 값 중 하나 또는 둘 모두에 대해 자동 유형 조정이 수행됩니다. 변환 유형은 데이터 유형과 데이터 유형의 우선 순위에 따라 결정됩니다.
다음은 선호하는 순서입니다-
한 필드가 I 유형이면 다른 필드는 I 유형으로 변환됩니다.
한 필드가 P 유형이면 다른 필드는 P 유형으로 변환됩니다.
한 필드가 D 유형이면 다른 필드는 D 유형으로 변환됩니다. 그러나 C 및 N 유형은 변환되지 않고 직접 비교됩니다. T 형의 경우도 마찬가지입니다.
한 필드가 N 유형이고 다른 필드가 C 또는 X 유형이면 두 필드 모두 P 유형으로 변환됩니다.
한 필드가 C 유형이고 다른 필드가 X 유형이면 X 유형이 C 유형으로 변환됩니다.
예 1
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
위의 코드는 다음 출력을 생성합니다.
A is less than B
예 2
REPORT YS_SEP_08.
DATA: A TYPE I.
IF A IS INITIAL.
WRITE: / 'A is assigned'.
ENDIF.
위의 코드는 다음 출력을 생성합니다.
A is assigned.
비트 연산자
ABAP는 또한 부울 대수 표현식을 작성하는 데 사용할 수있는 일련의 비트 논리 연산자를 제공합니다. 비트 연산자는 괄호 등을 사용하여 복잡한 식으로 결합 할 수 있습니다.
| S. 아니. | 비트 연산자 및 설명 |
|---|---|
| 1 | BIT-NOT 16 진수의 모든 비트를 반대 값으로 뒤집는 단항 연산자. 예를 들어이 연산자를 비트 레벨 값이 10101010 (예 : 'AA') 인 16 진수에 적용하면 01010101이됩니다. |
| 2 | BIT-AND 이 이항 연산자는 Boolean AND 연산자를 사용하여 비트별로 각 필드를 비교합니다. |
| 삼 | BIT-XOR Boolean XOR (배타적 OR) 연산자를 사용하여 비트별로 각 필드를 비교하는 이항 연산자입니다. |
| 4 | BIT-OR Boolean OR 연산자를 사용하여 비트별로 각 필드를 비교하는 이항 연산자입니다. |
예를 들어, 다음은 필드 A와 필드 B에 포함 된 두 비트 값에 대해 부울 AND, OR 또는 XOR 연산자를 적용 할 때 생성되는 값을 보여주는 진리표입니다.
| 필드 A | 필드 B | 과 | 또는 | XOR |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 | 1 |
| 1 | 0 | 0 | 1 | 1 |
| 1 | 1 | 1 | 1 | 0 |
문자열 연산자
다음은 문자열 연산자 목록입니다.
| S. 아니. | 문자열 연산자 및 설명 |
|---|---|
| 1 | CO (Contains Only) A가 B의 문자로만 구성되어 있는지 확인합니다. |
| 2 | CN (Not Contains ONLY) A에 B에없는 문자가 포함되어 있는지 확인합니다. |
| 삼 | CA (Contains ANY) A에 B의 문자가 하나 이상 포함되어 있는지 확인합니다. |
| 4 | NA (NOT Contains Any) A에 B의 문자가 없는지 확인합니다. |
| 5 | CS (Contains a String) A에 문자열 B가 포함되어 있는지 확인합니다. |
| 6 | NS (NOT Contains a String) A에 문자열 B가 포함되어 있지 않은지 확인합니다. |
| 7 | CP (Contains a Pattern) A에 B의 패턴이 포함되어 있는지 확인합니다. |
| 8 | NP (NOT Contains a Pattern) 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.
위의 코드는 다음 출력을 생성합니다.
P contains at least one character of Q.