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后能否是一个关系表达式的详细内容!

相关阅读 >>

static在C语言中是什么意思

C语言strcmp函数用法

C语言中什么是转义字符

C语言scanf是啥意思

C语言用什么函数来比较字符串大小?

C语言中数组所占字节怎么算

C语言中如何让3个数按大小输出?

C语言程序是从源文件第一条语句开始执行的,这句话是错的吗

C语言if语句用法是什么

C语言中用户标识符的命名规则是什么

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



打赏

取消

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

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

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

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

评论

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