9 java boolean switch-statement
为什么我的编译器告诉我:
不兼容的类型:
必需:布尔值
发现: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!");
}
Run Code Online (Sandbox Code Playgroud)
}
驾驶员类:
Club me = new Club();
me.test(true);
Run Code Online (Sandbox Code Playgroud)
Roh*_*ain 15
您正在切换boolean类型,并且您的案例正在使用int类型.但即使您将案例更改为具有boolean类型,这也行不通.你无法打开boolean类型.这没有任何意义,因为使用a if-else会更容易:
if (isOn) {
System.out.println("its on");
} else {
System.out.println("its off");
}
Run Code Online (Sandbox Code Playgroud)
请注意,这里没有任何"I don't know!"案例.甲boolean类型可以有true或false值.这是另一个原因,为什么switch-case不是boolean类型.没有默认情况.
您还可以使用条件表达式将其压缩为单个语句:
public void test(boolean isOn) {
System.out.println(isOn ? "its on" : "its off");
}
Run Code Online (Sandbox Code Playgroud)
\xc2\xaf\\ (\xe3\x83\x84) /\xc2\xaf
\nswitch (Boolean.hashCode(isOn)) {\n case 1231 -> System.out.println("its on");\n case 1237 -> System.out.println("its off");\n}\nRun Code Online (Sandbox Code Playgroud)\n
小智 5
只需将布尔值转换为 1 和 0 的数字。
public void test(boolean isOn){
int trueOrFalse;
if(isOn == true){
trueOrFalse = 1;
}else{
trueOrFalse = 0;
}
switch (trueOrFalse){
case 1:
if (isOn){
System.out.println("its on");
}
break;
case 0:
if (!isOn){
System.out.println("its off");
}
break;
default:
System.out.println("I don't know!");
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
38336 次 |
| 最近记录: |