A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 靓仔 中级黑马   /  2013-10-29 08:27  /  1810 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 靓仔 于 2013-10-29 21:57 编辑

问:switch语句能否作用在byte上,能否作用在long上,能否作用在String上?

7 个回复

倒序浏览
这些你都可以自己测试一下,这样你自己测试一下,记忆更深刻!
回复 使用道具 举报
多动手敲代码才是王道啊
在switch(expr1)中,expr1只能是一个整数表达式或者枚举常量(更大字体),整数表达式可以是int基本类型或Integer包装类型,由于,byte,short,char都可以隐含转换为int,所以,这些类型以及这些类型的包装类型也是可以的。显然,long和String类型都不符合switch的语法规定,并且不能被隐式转换成int类型,所以,它们不能作用于swtich语句中。

评分

参与人数 1技术分 +1 收起 理由
黄炳期 + 1 早起的鸟儿有虫吃

查看全部评分

回复 使用道具 举报
我试过long和string都不行,就是想知道原因。
回复 使用道具 举报
靓仔 发表于 2013-10-29 08:44
我试过long和string都不行,就是想知道原因。

这是语法规定 规定啊 当然你要问为什么这样规定的话我就不知道了
回复 使用道具 举报
To 金牌黑马 2013-10-29 21:41:51
地板
楼主你好,如果问题已解决请将帖子状态修改为提问结束,
如果未解决请继续追问,谢谢合作
修改方法请看解释帖:http://bbs.itheima.com/thread-89313-1-1.html
回复 使用道具 举报
在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 ;   
}  

评分

参与人数 1技术分 +1 收起 理由
周志龙 + 1 赞一个!

查看全部评分

回复 使用道具 举报
在switch(expr1)中expr1支持int型,而byte,short,char可以自动转换成int型,所以也支持。jdk 5.0添加了枚举,jdk 7.0又添加了String.
所以有byte,short,chart,int,枚举,String
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马