黑马程序员技术交流社区
标题:
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还有枚举
而像你的这段代码
boolean x =false;
switch(x){
case false:
System.out.println("false");
case true:
System.out.println("true")
default:
System.out.println();
}
复制代码
你传入的是boolean值而输出的照样还是boolean
而boolean的取值就只有两个这样是没有意义的操作所以java直接屏蔽了
你的程序不如用三元运算符更好
boolean b = x == false ? false :true;
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2