首页 > 解决方案 > switch 中的类似情况,差别不大

问题描述

我想执行一个开关案例,其中案例的主体与另一个案例的主体相似。我将这两个案例分开,编辑告知这是一个与另一个案例相似的案例,并且可以选择与另一个案例合并。当我做第一个案例是:

...
case 3: {
   case 7:
      System.out.println("Print something: ");
   ...
}

但是,我希望在案例 3 中打印与案例 7 不同的消息。

...
case 3: {
   System.out.println("Print something different");
   case 7:
      System.out.println("Print something: ");
   ...
}

但是,当 case 3 正在执行时,两个消息都会被打印出来,而当 case 是 7 时,只会打印 case 7 的消息。当案例为 3 时,有没有办法只打印第 3 个?

标签: javanestedcase

解决方案


如果您希望这两种情况(3 和 7)执行共同的逻辑,唯一的区别是打印输出,您可以添加一个条件:

case 3:
case 7: {
   System.out.println(v == 3 ? "something" : "something else");
   ... common code that should run for both 3 and 7 cases ...
}

vswitch 语句变量在哪里。


推荐阅读