在每种情况下都使用具有值范围的 switch 语句?

2022-08-31 10:03:23

在Java中,是否可以编写一个开关语句,其中每个事例包含多个值?例如(尽管显然以下代码不起作用):

switch (num) {
    case 1 .. 5:
        System.out.println("testing case 1 to 5");
        break;
    case 6 .. 10:
        System.out.println("testing case 6 to 10");
        break;
}

我认为这可以在Objective C中完成,Java中也有类似的东西吗?或者我应该只使用 ,语句来代替?ifelse if


答案 1

Java没有这种东西。为什么不直接执行以下操作呢?

public static boolean isBetween(int x, int lower, int upper) {
  return lower <= x && x <= upper;
}

if (isBetween(num, 1, 5)) {
  System.out.println("testing case 1 to 5");
} else if (isBetween(num, 6, 10)) {
  System.out.println("testing case 6 to 10");
}

答案 2

通过语句最接近这种行为的是switch

switch (num) {
case 1:
case 2:
case 3:
case 4:
case 5:
     System.out.println("1 through 5");
     break;
case 6:
case 7:
case 8:
case 9:
case 10:
     System.out.println("6 through 10");
     break;
}

使用语句。if