所以基本上,我试图让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 语句。