C语言中switch语句的case后能否是一个关系表达式


本文摘自PHP中文网,作者hzc,侵删。

C语言中switch语句的case后面不能是一个关系表达式,case后面跟的是一个常量表达式,CASE表达式的真假值判断就会中止,而剩余的 WHEN子句会被忽略。

不能,case后面是常量表达式。

要注意 CASE 表达式里各个分支返回的数据类型是否一致。某个分支返回字符型,而其他分支返回数值型的写法是不正确的。

使用 CASE 表达式的时候,最容易出现的语法错误是忘记写 END 。虽然忘记写时程序会返回比较容易理解的错误消息,不算多么致命的错误。而执行时却出错的情况大多是由这个原因引起的。

687f0280f7f7e5f763e2fa62d1fe25a.png

CASE表达式的执行结果是 NULL 。但是不写可能会造成"语法没有错误,结果却不对"这种不易追查原因的麻烦,所以写上 ELSE 子句(即便是在结果可以为 NULL 的情况下)。

扩展资料

1、CASE表达式的真假值判断就会中止,而剩余的 WHEN子句会被忽略。为了避免引起不必要的混乱,使用 WHEN子句时要注意条件的排他性。

2、当case后的表达式的值与switch表达式的值相等时, 即执行对应case后的语句,然后不再进行判断,继续执行后面所有case后的语句。如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。

推荐教程: 《c语言教程》

以上就是C语言中switch语句的case后能否是一个关系表达式的详细内容!

相关阅读 >>

C语言如何实现玫瑰花

c如何和mysql连接

C语言输入五个数如何求平均值?

C语言define什么意思

C语言如何判断整数是几位数

C语言中不等于怎么表示?

C语言源程序的扩展名是什么

C语言中求余运算符是什么?

C语言函数调用例子

求水仙花数C语言代码怎么写

更多相关阅读请进入《C语言》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...