如何忽略非整数输入并继续接受输入
How to ignore non integer input and continue taking input
我正在尝试忽略任何非整数输入(例如 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
}
}
希望有所帮助..如果没有,请在遗漏的地方发表评论..
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
}
}
我正在尝试忽略任何非整数输入(例如 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
}
}
希望有所帮助..如果没有,请在遗漏的地方发表评论..
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
}
}