黑马程序员技术交流社区

标题: switch()为什么只接受byte int short char类型而不接受boolean等其... [打印本页]

作者: 秦大忠    时间: 2013-10-13 19:49
标题: switch()为什么只接受byte int short char类型而不接受boolean等其...
本帖最后由 秦大忠 于 2013-10-14 10:01 编辑

比如这个程序
class VarDemo{
public static void main(String[] args){
boolean x =false;
switch(x){
case false:
System.out.println("false");
case true:
System.out.println("true")
default:
System.out.println();
}
}
}
作者: loading……99.9    时间: 2013-10-13 21:25
此外还能接受一个enum类型的枚举数据类型,byte short char这些都能隐式的转换成int,switch能接受int类型的数据,java 7后能接受String类型的数据,这是语法规则,没有为什么.
作者: 小痞痞    时间: 2013-10-13 22:18
Switch语句是对某几个值进行判断  
所接收的类型有byte,short,int,char,String还有枚举
而像你的这段代码
  1. boolean x =false;
  2. switch(x){
  3. case false:
  4. System.out.println("false");
  5. case true:
  6. System.out.println("true")
  7. default:
  8. System.out.println();
  9. }
复制代码
你传入的是boolean值而输出的照样还是boolean
而boolean的取值就只有两个这样是没有意义的操作所以java直接屏蔽了

你的程序不如用三元运算符更好
boolean b = x == false ? false :true;




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