Enviado em 08/02/2023 - 18:56h
Par para prevenir o InputMismatchException o ideal é tratar a entrada de dados com um método que procure apenas por caracteres que correspondam ao tipo de dado esperado no programa. No código acima, ao invés de chamar o método nextInt() do Scanner, deve-se chamar o método nextLine(), que irá retornar uma String e então converter a String para int com a função Integer.parseInt(). Deste modo, mesmo se o usuário inserir letras ou palavras inexistentes, o erro será ignorado e a entrada seguirá. O código corrigido ficaria da seguinte forma:
import java.util.Scanner;
public class App {
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
System.out.print("Provide your age: ");
String rawAge = keyboard.nextLine();
int age = Integer.parseInt(rawAge);
System.out.println("You said your age is: " + age);
}
}
import java.util.Scanner;
public class App {
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
System.out.print("Provide your age: ");
String rawAge = keyboard.nextLine();
int age = Integer.parseInt(rawAge);
System.out.println("You said your age is: " + age);
}
}