为什么我的编译器告诉我:
不兼容的类型:
必需: boolean 值
找到:Int
案例 0 和案例 1
例如:
public void test(boolean isOn){
switch (isOn){
case 0:
if (isOn){
System.out.println("its on");
}
break;
case 1:
if (!isOn){
System.out.println("its off");
}
break;
default:
System.out.println("I don't know!");
}
驱动类:
Club me = new Club();
me.test(true);
最佳答案
您正在打开 boolean
类型,并且您的案例正在使用 int
类型。但是,即使您将案例更改为具有 boolean
类型,那也是行不通的。您不能打开 boolean
类型。这没有任何意义,因为无论如何使用 if-else
会更容易:
if (isOn) {
System.out.println("its on");
} else {
System.out.println("its off");
}
请注意,这里没有 “我不知道!”
的情况。 boolean
类型可以有 true
或 false
值。这是另一个原因,为什么 switch-case
不适用于 boolean
类型。没有默认情况。
您还可以使用条件表达式将其压缩为单个语句:
public void test(boolean isOn) {
System.out.println(isOn ? "its on" : "its off");
}
关于java - 带有 boolean 值的 Switch 语句不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19351236/