问候查看此问题的堆栈溢出者,我是一名业余爱好者,正在使用 Java 开发划船游戏,目前面临一个问题,即使输入无效,for 循环中的 try 块也会立即迭代到下一个循环。for 循环由一个用于启动掷骰子的输入组成,掷骰子函数位于一个单独的类中,当输入不是“Y”时它将引发异常。当 try 块不在 for 循环中时,它可以完美地工作,但是当它放在 for 循环中时,即使输入无效,它也会自动迭代循环。
for (int i = 0; i < boats.length; i++) {
try {
System.out.printf("BOAT %d TURN %n", i + 1);
System.out.println("Type Y to throw your dice!");
String diceThrow = input.nextLine();
boats[i].setPosition(newRiver.Flow(boats[i].getPosition(), newDice.diceThrow(diceThrow)));
System.out.println("boat position is at " + boats[i].getPosition());
} catch (IllegalArgumentException e) {
System.out.println(e.getMessage());
}
}