ST语言和C语言关于case of 和switch case语句的区别

本文对比了C语言和ST语言中Switch语句的使用方式。在C语言中,case后不能直接跟多个常量,需分别列出并以break结束,同时必须包含default。而在ST语言中,OF后可以直接用逗号隔开常量,也可用省略号表示常量范围,以END_CASE结尾,用ELSE代替default。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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代替
MATLAB语言C语言中的case语句主要用于实现多分支选择结构,但它们在语法使用上有一定区别: 1. MATLAB中的case语句: MATLAB的case语句通常用在switch结构中,用于匹配不同的情况。在MATLAB中,case语句后面跟一个或多个要匹配的值,这些值可以用等号(==)连接。如果case后只有一个值,则无需使用括号;如果case后有多个值,则需要用花括号({})将值围起来。MATLAB的case语句不需要break关键字来终止当前分支的执行,因为case分支默认就是非穿透的。 示例代码: ```matlab switch expression case {1, 3, 5} % 如果expression等于1、3或5,则执行这里的代码 case 2 % 如果expression等于2,则执行这里的代码 otherwise % 如果没有case匹配,则执行这里的代码 end ``` 2. C语言中的case语句: 在C语言中,case语句用于switch结构中,case后跟的是要匹配的常量表达式,且必须使用冒号(:)结束。C语言中的case分支是穿透的,即一旦匹配到某个case,就会继续执行该分支下的后续代码,直到遇到break语句switch结构结束。因此,在每个case后通常都需要一个break语句来终止当前分支的执行。 示例代码: ```c switch (expression) { case 1: case 3: case 5: // 如果expression等于1、3或5,则执行这里的代码 break; // 需要break来防止穿透 case 2: // 如果expression等于2,则执行这里的代码 break; // 需要break来防止穿透 default: // 如果没有case匹配,则执行这里的代码 } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值