switch (x)
{
case A:
case B:
case C:
.doSomething()
}
有没有办法可以将这 3 个案例放在一行中?例如这样的事情
case A, B, C:
?
最佳答案
除了删除换行符并将这些 case
全部放在同一行之外,不。
您必须拥有三个 case
关键字和三个 :
。
如果您想了解详细信息,请参阅section 14.11 in the JLS 。特别是:
SwitchLabel:
case ConstantExpression :
case EnumConstantName :
default :
语法中没有任何模式可以接受类似于 SwitchLabel 的 case A,B,C:
之类的内容。
不过,当多个案例执行相同的操作时,按照您的示例构建案例是一种常见的做法:
switch (value) {
case 1:
case 3:
case 5:
System.out.println("It's a positive odd number less than 7!");
break;
case 4:
case 8:
System.out.println("It's a multiple of 4 between 1 and 9!");
break;
default:
System.out.println("It's just another boring number.");
break;
}
Java程序员在阅读这样的代码时一般都会有一个清晰的理解。将多个案例放在一行上(即没有换行符)的情况要少得多,并且典型的程序员不会一眼就清楚地理解(他们可能只是认为您不小心删除了换行符)。
关于java - 如何在 switch case 中编写多个条件以获得相同的行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19761922/