Caros mestres da programação
Eu estava fazendo alguns exercícios com o Try/Catch e um método que eu fiz entra sempre em um loop infinito que eu não consigo resolver. Segue o código:
public static int obterOpcaoMenu() {
Scanner scan = new Scanner(System.in);
int o = 0;
boolean entradaValida = false;
while(!entradaValida) {
System.out.println("Insira o numero da opção desejada: ");
System.out.println("1 - Adicionar um contato na agenda.");
System.out.println("2 - Consultar um contato da da agenda.");
System.out.println("3 - Sair.");
try {
o = scan.nextInt();
}catch(Exception e) {
System.out.println("Entrada invalida! Tente novamente:");
}
if (o == 1 || o == 2 || o == 3) {
entradaValida = true;
}else {
System.out.println("Entrada invalida! Tente outra vez:");
}
}
return o;
}
Se eu digitar um número qualquer que seja ele funciona da maneira que eu quero, mas se eu digito uma letra ele não executa o Scanner de novo e fica em um loop eterno .