黑马程序员技术交流社区

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

作者: 吴琼cola    时间: 2013-11-18 23:08
标题: switch语句能否作用在byte上,能否作用在long上,能否作用在String上?
今天讲到循环语句  产生了疑问switch语句能否作用在byte上,能否作用在long上,能否作用在String上?求黑马大神给小弟解惑
作者: zy888802    时间: 2013-11-18 23:13
在switch(x)中,x只能是一个整数表达式或者枚举常量,整数表达式可以是int基本类型或Integer包装类型,由于,byte,short,char都可以隐含转换为int,所以,这些类型以及这些类型的包装类型也是可以的。显然,long和String类型都不符合switch的语法规定,并且不能被隐式转换成int类型,所以,它们不能作用于swtich语句中。但是这只是java1.6,到了java1.7 新特性支持String类型 不过不支持long
作者: 王裕秋    时间: 2013-11-18 23:13
switch 语句作为选择结构语句的一种,它是针对某个表达式的值作出判断,从而决定程序执行那一段代码,switch 语句的使用格式如下:
switch (表达式){
  case 取值1:
   语句块1
  break;
  case 取值2:
   语句块2
  break;
   ……………
  case 取值n:
   语句块n
  break;
  default:
  语句块n+1
  break;
}
switch语句的判断条件只能接受int、byte、char、short类型的数据,不可以接受其它类型的数据。case语句只是相当于定义了一个标记位置,程序会根据switch条件表达式的结果,直接跳转到第一个匹配的标记位置处,开始顺序执行后面语句块代码,直到碰到break语句或方法返回语句为止。

作者: 呆呆呆    时间: 2013-11-18 23:18
switch语句只能接受int、byte、char、short类型的数据
作者: 寻丶丶觅    时间: 2013-11-18 23:42
switch 语句可以接受byte short  int  char 类型, 其中byte short char 其实都是自动提升到int类型
JDK1.6以后 也可以String 类型了
作者: 张天昊76    时间: 2013-11-18 23:45
switch语句的表达式必须是int型的(byte,short,char其实会自动提升到int型)或int类型相兼容的。
另外,JDK6.0的新特性:可以是Enum
          JDK7.0的新特性:可以是字符串
作者: HACKMA    时间: 2013-11-19 03:10
一起进来学习的
作者: 陈文杰    时间: 2013-11-19 04:12
在switch(expr1)中,expr1只能是一个整数表达式或者枚举常量(更大字体),整数表达式可以是int基本类型或Integer包装类型,由于,byte,short,char都可以隐含转换为int,所以,这些类型以及这些类型的包装类型也是可以的。显然,long和String类型都不符合switch的语法规定,并且不能被隐式转换成int类型,所以,它们不能作用于swtich语句中。




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