黑马程序员技术交流社区
标题:
关于switch的疑问 switch的作用范围
[打印本页]
作者:
罗闯
时间:
2012-3-29 16:34
标题:
关于switch的疑问 switch的作用范围
中午下了一段代码,其中用到了判断语句switch 往switch中传入了 int类型合适,但是String和long却不行
问问:switch的作用范围,为什么它不能作用在String和long上。
作者:
龚龙
时间:
2012-3-29 16:37
switch(x) 这个x的类型只能是int 或是枚举类型,其他类型都不行!
作者:
刘士
时间:
2012-3-29 16:40
switch(ex)中,ex是一个整数表达式。
因此传递给switch和case语句的参数应该是int,short,char,byte
long,string都不能作用于swtich
作者:
曹魁
时间:
2012-3-29 16:45
本帖最后由 曹魁 于 2012-3-29 16:46 编辑
swtich()里面必须是int和enum--即枚举类型。
short、 char 或者 byte他会自动转换为int型,
long不能自动转换为int;再者long比int范围大,用的话可能会丢失精度。
Java语法是有标准规定的。
不过在JDK7.0的标准,switch是可以使用string类型。
作者:
何万县
时间:
2012-3-29 16:51
swtich()里面必须是int和enum--即枚举类型。
Java语法规定的。
不过在JDK7.0的标准,switch是可以使用string类型。
作者:
翟友伟
时间:
2012-3-29 16:53
在switch中只能加入 比int范围小的基本数据类型(也就是byte,short,int,char)
因为byte,short,char,,可以隐式的转换为int类型,
其实最后放的还是int类型
所以long, string不行
作者:
izwj
时间:
2012-3-29 18:06
如果判断的具体数值不多,而且符合byte short int char这四种类型时使用switch
虽然也可以使用if,建议使用swtich语句。因为效率稍高。
对区间判断,对结果为boolean类型判断,使用if。
作者:
尹丽峰
时间:
2012-3-29 18:08
switch 只能用在 byte short int char这4个里哈
作者:
胡川
时间:
2012-3-29 18:45
swtich()里面必须是int和enum--即枚举类型。
short、 char 或者 byte他会自动转换为int的。。
long不能自动转换为int..
Java语法的标准规定的。Long型的占得数据位数太大了。不过在JDK7.0的标准,switch可以使用string类型了。
因为long比int范围大..可能会丢失精度..
作者:
李柯
时间:
2012-3-29 18:50
首先、在switch(c)中,c只能是整数表达式或者枚举常量。
其次、整数表达式可以是int基本类型或Integer包装类型,因为byte,short,char都可以隐含转换为int,
所以这些类型以及这些类型的包装类型也是可以的。
再次、long和String类型都不符合switch语法的规定,并且不能隐式的转换成int类型,
所以它们不能作用于switch语句中。
作者:
王运科
时间:
2012-3-29 18:56
在switch(expr1)中,expr1只能是一个整数表达式或者枚举常量,整数表达式可以是int基本类型或Integer包装类型,由于,byte,short,char都可以自动转换为int,所以,这些类型以及这些类型的包装类型也是可以的。long和String类型都不符合switch的语法规定,并且不能被隐式(自动)转换成int类型,所以,它们不能作用于swtich语句中。
作者:
刘_浩
时间:
2012-3-29 18:59
switch()中可以是byte,short,int,char。
作者:
和心愿
时间:
2012-3-29 19:33
jdk1.7以前switch()中可以是byte,short,int,char。以及枚举类型
从jdk1.7开始可以放String类型,他其实在底层调用的是String的hashcode方法得到穿进去的String对象的hashcode值,即还是以数值型的数据进行判断
int hashCode() Returns a hash code for this string. hashCode()方法返回的是int类型值
作者:
姚伟涛
时间:
2012-3-29 19:47
switch(expr1)中,expr1是一个整数表达式。因此传递给switch和case语句的参数应该是int、short、char或则byte。long,string都不能作用于swtich
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2