분기문

 

IF 문

 

IF문은 조건식의 결과가 1의 값(참)이면 IF문 안의 구문을 수행합니다.

IF문의 조건이 거짓이고 ELSIF가 있는 경우 ELSIF의 조건을 검사합니다.

모든 조건식이 거짓인 경우 어떠한 명령문도 실행되지 않지만 ELSE가 있는 경우 ELSE 안의 명령문을 수행합니다.

형식

IF 조건식 THEN

   구문

ELSIF 조건식 THEN

   구문

(중략)

ELSE

   구문

END_IF;

조건식은 비교 연산이나 논리 연산 등을 활용하여 구성할 수 있습니다.
구문에는 다른 구문들이 올 수 있습니다.
ELSIF는 1개 이상 반복하여 나올 수 있으며, ELSE는 생략되거나 단 한 번 나올 수 있습니다.
예시

내용

// D1디바이스의 값이 0이면 D100 디바이스에 1을 대입

IF DW01 = 0 THEN

   DW100 := 1;

// D1 디바이스의 값이 1이면 D100 디바이스에 2를 대입

ELSIF DW01 = 1 THEN

   DW100 := 2;

// D1 디바이스이 값이 5보다 작으면 D100 디바이스에 3을 대입

ELSIF DW01 < 5 THEN

   DW100 := 3;

// D1 디바이스의 값이 0과 1이 아니고 5보다 같거나 크면 D100 디바이스에 0을 대입

ELSE

   DW100 := 0;

END_IF;

 

 

CASE 문

 

CASE문은 CASE 다음의 표현식의 값에 따라 수행되는 구문이 분기됩니다.

형식

CASE 표현식 OF

정수 선택 값 : 구문

정수 선택 값 : 구문

(중략)

ELSE

   구문

END_CASE;

표현식에는 정수 값이 와야 합니다.
정수 선택 값에는 복수의 정수 또는 정수의 범위 등이 올 수 있습니다. 다음의 예시를 참고하세요.

정수 선택 값 종류

내용

1

표현식의 값이 1인 경우

2, 3, 4

표현식의 값이 2, 3, 4인 경우

5..10

표현식의 값이 5부터 10인 경우(5, 6, 7,  8, 9, 10)

1, 2..5, 10

표현식의 값이 1, 2부터 5, 10인 경우(1, 2, 3, 4, 5, 10)

구문에는 다른 구문들이 올 수 있습니다.
ELSE는 생략되거나 단 한번 나올 수 있으며, 표현식의 값이 정수 선택 값들 중 없을 경우 ELSE 안의 구문을 수행합니다.


예시

내용

 

CASE DW10 OF

// D10디바이스의 값이 4면 D0 디바이스에 4를 대입합니다.

4:

   DW00 := 4;

// D10 디바이스의 값이 5와 6 사이거나 7이면 D0 디바이스에 5를 대입합니다.

5..6, 7:

   DW00 := 5;

// D10 디바이스이 값이 4 또는 5와 6 사이 또는 7이 아니면 D0 디바이스에 0을 대입합니다.

ELSE

   DW00 := 0;

END_CASE;