而Try和Catch Loop Error Java

时间:2018-04-15 17:02:12

标签: java loops

我正在尝试创建一个简单的玩家选择循环,但是如果用户试图输入不是整数的东西,那么循环就会从某种意义上“抛出”。我不知道我需要做什么,所以这个代码不会丢失以防输入不当。

int player;
boolean playerCreated = false;
while (playerCreated == false) {
  try {
    player = scan.nextInt();
      if (player != 1 && player != 2) {
        throw new Exception();
      }
    playerCreated = true;
  }
catch (Exception e) {
  System.out.println("Please input a valid player selection. (1 or 2)");
  continue;
  }
}

1 个答案:

答案 0 :(得分:1)

如果在键入时输入非整数类型的类型,则在遇到if语句之前将抛出异常。因此,它不适用于下面指定的catch语句。

如果在catch语句中处理异常,则continue将导致扫描保留该值并导致catch语句的内容为无限。因此,您需要在while语句启动时初始化扫描。

while (playerCreated == false) {
try {
scan=new Scanner(System.in);
player = scan.nextInt();
  if (player != 1 && player != 2) {
    throw new Exception();
  }
playerCreated = true;
}