Java-切换案例,多个案例调用同一个函数
因为我有多个Java-切换案例,多个案例调用同一个函数,java,switch-statement,Java,Switch Statement,因为我有多个String案例,应该以相同的方式处理,所以我尝试了: switch(str) { // compiler error case "apple", "orange", "pieapple": handleFruit(); break; } 但是我得到了一个编译器错误 我是否必须在Java中逐个调用相同的函数: switch(str) { case "apple": handleFruit(); break; // repeat above
String
案例,应该以相同的方式处理,所以我尝试了:
switch(str) {
// compiler error
case "apple", "orange", "pieapple":
handleFruit();
break;
}
但是我得到了一个编译器错误
我是否必须在Java中逐个调用相同的函数:
switch(str) {
case "apple":
handleFruit();
break;
// repeat above thing for each fruit
...
}
没有更简单的样式吗?Java支持您没有中断
:
case "apple":
case "orange":
case "pieapple":
handleFruit();
break;
您必须对每个字符串使用
case
关键字,如下所示:
switch (str) {
//which mean if String equals to
case "apple": // apple
case "orange": // or orange
case "pieapple": // or pieapple
handleFruit();
break;
}
String result = switch (str) { // <----------- declare and assign in one shot
case "apple", "orange", "pieapple" -> handleFruit();
}
编辑2019年5月2日 爪哇12 Java 12中提出了一种新的switch-case语法,因此要解决这个问题,以下是解决方法:
switch (str) {
case "apple", "orange", "pieapple" -> handleFruit();
}
现在,您可以只做逗号分隔的选择,箭头->
然后是您要执行的操作
另一种语法也是:
假设每种情况都返回一个值,并且您希望在变量中设置值,让我们假设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;
}
字符串结果;// 出现错误是因为在案例查询之间使用了逗号。
要定义多个案例,必须使用分号
就这样
switch (str) {
case "orange": case "pineapple": case "apple":
handleFruit();
break;
}
我相信新的switch语句语法在java14中可用,而不是在java12中。更多信息请点击这里:@ArielMirra谢谢你提供的信息,我对这些信息不太清楚,看看这个或者