带有多个变量的常规 switch case 语句

sko*_*580 4 groovy switch-statement

在 groovy 中是否可以有一个包含多个变量的 switch-case 语句?我尝试使用元组,但案例部分不接受多个参数。

我试图避免几个嵌套的 if 语句,而不是

if (a==1) {
  if (b==2) {
    if (c==3) {
      // do something
    }
  }
}
else {
  if (a==4) {
    if (b==5) {
      if (c==6) {
        //do something else 
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我可不可以做:

switch(a,b,c) { 
  case : (1,2,3) // if a==1, b==2 and c==3
    // do something 
    ... 
  case : (4,5,6)
    // do something else  
    ... 
  } 
}
Run Code Online (Sandbox Code Playgroud)

Gro*_*oot 5

Groovy 只是脏java,你不需要任何类定义。您在 java 方法中编写的所有内容都可以直接在 groovy 中编写。

switch (num) {
case 1:
case 2:
case 3:
   System.out.println("1 through 3");
   break;
case 6:
case 7:
case 8:
    System.out.println("6 through 8");
 break;
}
Run Code Online (Sandbox Code Playgroud)

为了回答你的问题,在开关内部我们需要一个表达式,而不是函数参数。

  • 你的意思是“groovy 比 java 更好”,对吧?:-) (5认同)