-
来自电脑网络类芝麻团 推荐于
其实你的编译器提示信息已经很明显了:swtich表达式不是一个整形,switch表达式是一个比较特殊的语句它要求是一个常量表达式,并且是基本类型如int,char等。因此你程序里面的a是一个float型,因此需要进荇一下强制转换或者直接将a定义为int也是可以的。下面的代码你可以参考一下:
switch似乎只能不能接受浮点数吧
a 得是整数或者字符才能用于switch,你这里可以用if代替
但要注意浮点数通常不能直接比较的因为有误差。
switch语句非常有用但在使用时必须谨慎。所写的任何switch语句都必须遵循以下规则:
只能针对基本数据类型使用switch这些类型包括int、char等。对于其他类型则必须使用if语句。
switch()的参数类型不能为实型
case标签必须是惟┅性的表达式;也就是说,不允许两个case具有相同的值
switch(a)里面的a得是整形,而你定义的是f