1. 程式人生 > >ST語言和C語言關於case of 和switch case語句的區別

ST語言和C語言關於case of 和switch case語句的區別

C語言中,case後不可直接跟多個常量,要如下圖所示使用(不要忘記defalut)

switch(int,char){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
//todo
break;
defalut:		break;

ST語言中,OF後可以用逗號直接將常量隔開,也可以使用省略號表示常量的範圍。


```CASE isignal OF
	10,11,12,13..19:
	bredlight:=FALSE;
	bgreenlight:=FALSE;
	byellowlight:=FALSE;
	IF  waittimer.Q AND bXswitch THEN
		isignal:=20;
		END_IF
	20:
	bredlight:=FALSE;
	bgreenlight:=TRUE;
	byellowlight:=FALSE;
	
	IF  greentimer.Q THEN
		isignal:=30;
		END_IF
	30:
		bredlight:=FALSE;
		bgreenlight:=FALSE;
		byellowlight:=TRUE;
		
	IF  yellowtimer.Q THEN
		isignal:=40;
		END_IF
	40:
	bredlight:=TRUE;
	bgreenlight:=FALSE;
	byellowlight:=FALSE;

	IF  redtimer.Q THEN
		isignal:=10;
		END_IF

	ELSE:
	XXXXXXXXX;
END_CASE

要用END_CASE結尾,defalut用ELSE代替