중첩 된 IF 문과 비교하여 CASE를 사용할 때의 장점은 하나의 동일한 조건 테스트과 관련된 다양한 결과를 일목요연하게 정리할 수 있다는 것입니다. 사용법은 다음과 같습니다.
CASE 조건식 OF 값1: 명령문_A; 값2: 명령문_B; 값3, 값4, 값6: 명령문_C; 값7.. 값12: 명령문_D; : 값N: 명령문_X; ELSE 다른명령문; END_CASE;
다음은 다양한 사용예입니다.
CASE %MW1 OF 1: %QX2.0 := TRUE; 2: %QX2.1 := TRUE: 3..5: %QX2.2 := TRUE; END_CASE;
CASE A ‐ B OF 4:Out := TRUE; 7:IF B>0 THEN Result := %MW5; ELSE Result := %MW4; END_IF; END_CASE;
RE(clk := PhotoSwitch, Q => New_item); (* A product is in place *) IF New_item THEN CASE Color OF (* Checks color *) Green: Piston1 := TRUE; Green_count := Green_count + 1; Red : Piston2 := TRUE; Red_count := Red_count + 1; Blue : Piston3 := TRUE; Blue_count := Blue_count + 1; ELSE Error_count := Error_count + 1; END_CASE; END_IF;