Как игнорировать нецелочисленный ввод и продолжать принимать ввод - PullRequest
0 голосов
/ 25 февраля 2020

Я пытаюсь игнорировать любой нецелочисленный ввод (например, r, $, £) и продолжаю принимать ввод, пока не будет введен целочисленный ввод. Любая помощь приветствуется.

    while (input.hasNextInt()){

    int column = input.nextInt();
    if (column < 0 || column > 6){
      errorWrongInput();
      continue;
    } 
    if(placeCounter(board,column,player)) {
      if (hasWon(board)){
          System.out.println ("Player " +player+ " wins");
          printBoard(board);
          return;
      }
      player = playerTurn(player);
    }
  printBoard(board); // print the board
  }
}

1 Ответ

0 голосов
/ 25 февраля 2020

Надеюсь, поможет .. если нет, сделайте комментарий, где он пропустил ..

while (input.hasNext()){ // use hasNext instead of hasNextInt
try{
    int column = input.nextInt();
    if (column < 0 || column > 6){
      errorWrongInput();
      continue;
    } 
} //Brackets required to close try
catch (InputMismatchException ex){ //catch Exception here for non integer input
            input.next(); // do a next() here
            continue;
        }
    if(placeCounter(board,column,player)) {
      if (hasWon(board)){
      System.out.println ("Player " +player+ " wins");
      printBoard(board);
      return;
      }
      player = playerTurn(player);
    }
  printBoard(board); // print the board
  }
}
...