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

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

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

不能,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后能否是一个关系表达式的详细内容,更多请关注其它相关文章!