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

新手上路,请多包涵

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

 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 中是否有类似的东西?或者我应该只使用 if , else if 语句吗?

原文由 davidx1 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 586
2 个回答

在阅读了所有评论后,我没有看到有人提到 增强型开关,在这种情况下,您可以在这种情况下拥有多个值 ->

 switch(value){
   case 1,2,3,4:
      //dosth
      break;
   case 7,9,10,23:
      //dosth
      break;
}

并且由于在您的情况下,每种情况下只有一个表达式,因此您可以执行以下操作而无需 break every case->

 switch (value) {
    case 1, 2, 3, 4 -> System.out.println("one of 1,2,3,4 matched");
    case 7, 9, 10, 23 -> System.out.println("one of 7,9,10,23 matched");
}

这是 Java 中增强开关的众多附加好处之一。

原文由 ClassY 发布,翻译遵循 CC BY-SA 4.0 许可协议

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");
}

原文由 missingfaktor 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题