Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java-切换案例,多个案例调用同一个函数_Java_Switch Statement - Fatal编程技术网

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谢谢你提供的信息,我对这些信息不太清楚,看看这个或者