黑马程序员技术交流社区

标题: switch语句能否作用在byte上,能否作用在long上,能否作用在String上? [打印本页]

作者: 张强+    时间: 2011-11-9 11:43
标题: switch语句能否作用在byte上,能否作用在long上,能否作用在String上?
switch语句能否作用在byte上,能否作用在long上,能否作用在String上?
作者: 海林    时间: 2011-11-9 11:47
byte 和int可以   那个long就不行了!
作者: 海林    时间: 2011-11-9 11:50
其实 char 和  short  也是可以的   ! (我特意试了下 刚才没敢说  就自己试了试   可以通过)
作者: 路新    时间: 2011-11-9 11:51
本帖最后由 路新 于 2011-11-9 11:51 编辑

在switch(exp)中,exp只能是一个整数表达式或者枚举常量(javase5),整数表达式可以是int基本类型或Integer包装类型,
由于byte,short,char都可以隐含转换为int,所以这些类型以及这些类型的包装类型也是可以的。显然long和String类型都
不符合switch语法的规定,并且不能隐式的转换成int类型,所以它们不能作用于switch语句中,此时只能只能使用一系列
的if等语句了。
作者: 海林    时间: 2011-11-9 11:52
那个String是肯定不行的    switch里接受的是整形表达式
作者: 魏兴发    时间: 2011-11-9 11:53
本帖最后由 know 于 2011-11-9 11:56 编辑

switch语句选择的类型:byte,short,int , char,枚举enum也可以!!
作者: 常文艺    时间: 2011-11-9 11:55
最新版本是可以的,视频里说了,枚举类型都行
作者: 常文艺    时间: 2011-11-9 11:56
LONG 不行
作者: wangqing    时间: 2011-11-9 22:01
switch中的数据类型有:byte,short,int,long,char
作者: 胡文杰    时间: 2011-11-9 22:39
switch(args)中,args是一个整数表达式。因此传递给 switch 和 case 语句的参数应该是 int、 short、 char 、 byte。long,string 都不能作用于swtich。
作者: 郭学文    时间: 2011-11-9 22:53
别纠结了,很快了,1.7支持String了
等IDE更新吧,记事本可以直接写了
作者: せR3n、何必装纯    时间: 2011-11-10 14:16
在switch(expr1)中,expr1只能是一个整数表达式或者枚举常量(更大字体),整数表达式可以是int基本类型或Integer包装类型,由于,byte,short,char都可以隐含转换为int,所以,这些类型以及这些类型的包装类型也是可以的。显然,long和String类型都不符合switch的语法规定,并且不能被隐式转换成int类型,所以,它们不能作用于swtich语句中。
作者: 白倩    时间: 2011-11-10 14:21
用switch语句时只能是一个整数表达式或枚举常量,整数表达式可又是int或Integer
因为byte,short,char都可以隐含转换为int,所以,这些类型也是可以的,
但long和String都没办法转换成int  所以不能作用于switch语句中。
但在java7中switch又有新的改变哦!可又用字符串啦!呵呵




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2