논리식
논리식은 사용자 프로그램 논리가 if, while, for, case와 같은 조건문과 루핑 명령문에서 선택하는 경로를 판별합니다.
다음 표에 기본 논리식의 연산자와 피연산자가 요약되어 있습니다. 기본 표현식은 피연산자, 비교 연산자, 두 번째 피연산자로 구성됩니다.
| 첫 번째 피연산자 | 비교 연산자 | 두 번째 피연산자 |
|---|---|---|
| 날짜/시간 표현식 | ==, != , <, >, <=, >= | 날짜/시간 표현식 첫 번째 표현식과 두 번째 표현식은 호환 가능한 유형이어야 합니다. EGL의 지정 호환성을 참조하십시오. 날짜/시간 비교의 경우 초과 부호(>)는 시간상 나중임을 의미하고 미만(<) 부호는 시간상 이전임을 의미합니다. |
| 숫자 표현식 | ==, != , <, >, <=, >= | 숫자 표현식 |
| 문자열 표현식 | ==, != , <, >, <=, >= | 문자열 표현식 EGL의 지정 호환성을 참조하십시오. |
| 문자열 표현식 | like | 정규식 문자열 표현식이 왼쪽에서 오른쪽으로 문자 위치별로 차례로 비교되는 리터럴 또는 문자 필드입니다. 정규식은 와일드카드와 이스케이프 문자를 포함할 수 있습니다. |
| 문자열 표현식 | matches | 정규식 문자열 표현식이 왼쪽에서 오른쪽으로 문자 위치별로 차례로 비교되는 리터럴 또는 문자 필드입니다. 정규식은 와일드카드와 이스케이프 문자를 포함할 수 있습니다. 정규식 규칙은 like 연산자와 matches 연산자 간에 다릅니다. |
| NUM 또는 CHAR 값 | ==, != , <, >, <=, >= | NUM 또는 CHAR 값 |
| searchValue | in | arrayName 자세한 정보는 in 연산자의 내용을 참조하십시오. |
| 기본 레코드의 변수 |
|
다음 중 하나입니다.
|
| sysVar.systemType |
|
자세한 정보는 systemType의 내용을 참조하십시오. |
| 레코드 이름 |
|
레코드 조직에 적합한 입출력(I/O) 오류 값입니다. 입출력(I/O) 오류 값을 참조하십시오. |
복합 논리식
"and"(&&) 연산자와 "or" 연산자(||)를 사용해서 기본 표현식의 쌍을 결합해서 복합 표현식을 빌드할 수 있습니다. 또한 "not" 연산자(!)를 사용하여 표현식의 값을 되돌릴 수 있습니다(TRUE를 FALSE로, FALSE를 TRUE로 변경).
var01 == var02 || 3 in array03 || x == y
var01이 var02와 같지 않으면 평가를 진행합니다. 값 3이 array03에 있는 경우 전체 표현식은 TRUE이고 EGL은 마지막 기본 논리식(x == y)을 평가할 필요가 없습니다.
마찬가지로 기본 논리식이 "and" 연산자로 결합된 경우 기본 논리식 중 하나가 FALSE로 해석되는 즉시 EGL이 평가를 중지합니다. 다음 예제에서는 var01이 var02와 같지 않음을 발견하는 즉시 평가를 중지합니다.
var01 == var02 && 3 in array03 && x == y
- 평가의 순서 변경
- 의미의 명확화
- "not" 연산자(!)를 사용 가능하게 함. 이 연산자는 바로 뒤 소괄호 안에 표시되는 논리식의 값에 반대되는 부울 값(TRUE 또는 FALSE)으로 평가됩니다.
호환성
| 플랫폼 | 문제 |
|---|---|
| COBOL 생성 | COBOL에서는 MBCHAR 또는 DBCHAR을 UNICODE 또는 STRING과 비교하는 방법을 제공하지 않습니다. |
| JavaScript 생성 | is 연산자와 not 연산자의 변형인
blanks와 numeric의
레코드 특정 테스트, sysVar.systemType의 사용만 지원됩니다. 다음 유형은 지원되지 않습니다. ArrayDictionary, BIN(소수 자리가 있음), BLOB, CHAR, CLOB, DBCHAR, HEX, INTERVAL, MBCHAR, NUMC, STRING(크기 제한이 있음), PACF, UNICODE, 구조화 레코드 파트. |
| VisualAge® Generator 호환 모드 | is 또는 not을 사용하여 vgLib.getVAGSysType()에서 리턴한 값을 테스트할 수 없습니다. |