突破开关语句执行一种情况



所以基本上,我试图让switch语句只执行一次。而不是全部执行。假设玩家的物品栏中拥有所有钥匙。我只想执行一个案例,而不是遍历所有案例。(我只想看到一个执行)

public int[] allKeys = {1543, 1544, 1545, 1546, 1547, 1548};
if (player.getInventory().containsAny(allKeys)) {
                      for (int id : allKeys) {
                          switch(id) {
                          case 1543:
                              System.out.println("executed");
                              break;
                          case 1544:
                              System.out.println("executed");
                              break;
                          case 1545:
                              System.out.println("executed");
                              break;
                          case 1546:
                              System.out.println("executed");
                              break;
                          case 1547:
                              System.out.println("executed");
                              break;
                          case 1548:
                              System.out.println("executed");
                              break;
                            default:
                              System.out.println("error!");
                          }
                        }
                    }

您的switch一次只执行"一个" - 这是您的开关处于 for 循环中的事实导致您出现问题......

您可以在切换后放置"中断"switch(x) { ... } break;,但实际上为什么要在不想循环时循环 - 只需打开说第一个键。

您当前正在 for 循环中运行开关大小写,该循环穿过数组 allKeys 中的每个 id。因为您假设用户拥有 allKeys,所以我只会删除 for 循环,并选择您希望用户执行的任何键,并让该键通过 switch 语句。

最新更新