黑马程序员技术交流社区
标题:
面试题:swith语句问题?
[打印本页]
作者:
靓仔
时间:
2013-10-29 08:27
标题:
面试题:swith语句问题?
本帖最后由 靓仔 于 2013-10-29 21:57 编辑
问:switch语句能否作用在byte上,能否作用在long上,能否作用在String上?
作者:
杨增坤
时间:
2013-10-29 08:33
这些你都可以自己测试一下,这样你自己测试一下,记忆更深刻!
作者:
ixiangfeng
时间:
2013-10-29 08:43
多动手敲代码才是王道啊
在switch(expr1)中,expr1只能是一个整数表达式或者枚举常量(更大字体),整数表达式可以是int基本类型或Integer包装类型,由于,byte,short,char都可以隐含转换为int,所以,这些类型以及这些类型的包装类型也是可以的。显然,long和String类型都不符合switch的语法规定,并且不能被隐式转换成int类型,所以,它们不能作用于swtich语句中。
作者:
靓仔
时间:
2013-10-29 08:44
我试过long和string都不行,就是想知道原因。
作者:
ixiangfeng
时间:
2013-10-29 09:21
靓仔 发表于 2013-10-29 08:44
我试过long和string都不行,就是想知道原因。
这是语法规定 规定啊 当然你要问为什么这样规定的话我就不知道了
作者:
To
时间:
2013-10-29 21:41
楼主你好,如果问题已解决请将帖子状态修改为提问结束,
如果未解决请继续追问,谢谢合作
修改方法请看解释帖:
http://bbs.itheima.com/thread-89313-1-1.html
作者:
喂,咱不离!
时间:
2013-10-29 21:57
在switch(expr1)中,expr1只能是一个整数表达式或者枚举常量(更大字体),整数表达式可以是int基本类型或Integer包装类型,由于,byte,short,char都可以隐含转换为int,所以,这些类型以及这些类型的包装类型也是可以的。显然,long和String类型都不符合switch的语法规定,并且不能被隐式转换成int类型,但是在JDK1.7新特性后 String 就可以作用到switch 上了 ,你看看JDK1.7的新特性
1,switch中可以使用字串
Java代码
String s = "test";
switch (s) {
case "test" :
System.out.println("test");
case "test1" :
System.out.println("test1");
break ;
default :
System.out.println("break");
break ;
}
作者:
血影-追梦
时间:
2013-10-30 23:44
在switch(expr1)中expr1支持int型,而byte,short,char可以自动转换成int型,所以也支持。jdk 5.0添加了枚举,jdk 7.0又添加了String.
所以有byte,short,chart,int,枚举,String
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2