Lee*_*eem 9 java switch-statement
由于我有多个String案例应该以同样的方式处理,我试过:
switch(str) {
// compiler error
case "apple", "orange", "pieapple":
handleFruit();
break;
}
Run Code Online (Sandbox Code Playgroud)
但是我收到编译器错误.
在Java中,我是否应该逐个调用相同的函数:
switch(str) {
case "apple":
handleFruit();
break;
// repeat above thing for each fruit
...
}
Run Code Online (Sandbox Code Playgroud)
没有简单的风格吗?
YCF*_*F_L 11
您必须case为每个String 使用关键字,如下所示:
switch (str) {
//which mean if String equals to
case "apple": // apple
case "orange": // or orange
case "pieapple": // or pieapple
handleFruit();
break;
}
Run Code Online (Sandbox Code Playgroud)
编辑02/05/2019
从Java 12开始,提出了新的switch case语法,因此要解决此问题,方法如下:
switch (str) {
case "apple", "orange", "pieapple" -> handleFruit();
}
Run Code Online (Sandbox Code Playgroud)
现在,您可以选择多个选项,并用逗号分隔,一个箭头->然后是您要执行的操作。
另一种语法是:
考虑到每种情况都返回一个值,并且您想在变量中设置值,假设handleFruit()返回一个String旧语法应为:
String result; // <-------------------------- declare
switch (str) {
//which mean if String equals to
case "apple": // apple
case "orange": // or orange
case "pieapple": // or pieapple
result = handleFruit(); // <----- then assign
break;
}
Run Code Online (Sandbox Code Playgroud)
现在使用Java 12,您可以像这样:
String result = switch (str) { // <----------- declare and assign in one shot
case "apple", "orange", "pieapple" -> handleFruit();
}
Run Code Online (Sandbox Code Playgroud)
不错的语法
case "apple":
case "orange":
case "pieapple":
handleFruit();
break;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6173 次 |
| 最近记录: |