C语言中的switch语句,case后面可不可以跟一表达式,例如“100>x>50”;如不可以为什么?

如题所述

第1个回答  2020-01-12
不能,case后面是常量表达式
要注意
CASE
表达式里各个分支返回的数据类型是否一致。某个分支返回字符型,而其他分支返回数值型的写法是不正确的。
使用
CASE
表达式的时候,最容易出现的语法错误是忘记写
END
。虽然忘记写时程序会返回比较容易理解的错误消息,不算多么致命的错误。而执行时却出错的情况大多是由这个原因引起的。
CASE表达式的执行结果是
NULL
。但是不写可能会造成"语法没有错误,结果却不对"这种不易追查原因的麻烦,所以写上
ELSE
子句(即便是在结果可以为
NULL
的情况下)。
扩展资料
1、CASE表达式的真假值判断就会中止,而剩余的
WHEN子句会被忽略。为了避免引起不必要的混乱,使用
WHEN子句时要注意条件的排他性
2、当case后的表达式的值与switch表达式的值相等时,
即执行对应case后的语句,然后不再进行判断,继续执行后面所有case后的语句。如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。
相似回答