对于switch (c)中的变量c不能定义为——类型?(A.unsigned B.int C.char D.float

如题所述

没想到这么个小问题,还能有这么多争议…
首先,在switch(exp)中,exp只能是整数表达式或者枚举常量。
整数表达式可以是int基本类型或Integer包装类型,因为byte,short,char都可以隐含转换为int,所以这些类型以及这些类型的包装类型也是可以的。(所以B、C正确,这时A、D间犹豫了吧?)
long和String类型都不符合switch语法的规定,并且不能隐式的转换成int类型,所以它们不能作用于switch语句中。(稍微觉得D不对了)

去除钻牛角尖的,通常unsigned若省略后一个关键字,大多数编译器都会认为是unsigned int。(这时可以确定1000%确定选D了)

帮你扩展下:在jdk7.0中switch 语句可以用字符串啦~(不过问题中也没string 这个选项~)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-11-11
switch后面的“表达式”,可以是int、char和枚举型中的一种。
第2个回答  2011-11-11
书上是这么说的:switch(表达式) 括号内的表达式,ANSI标准允许它为任何类型。
个人觉得A选项有问题,可以是unsigned int或者unsigned short或者unsigned long,没有直接的unsigned类型。
第3个回答  2011-11-11
D
switch重只能是整形和字符型
谢谢采纳
第4个回答  2011-11-12
选D