Infinite While Loop Quando InputMidmatchException for capturado no bloco try-catch [duplicate]
Esta pergunta já tem uma resposta aqui:
try / catch com InputMismatchException cria loop infinito respostasEu continuo recebendo meu código travado em um loop while infinit
Não é nada a avançado, mas eu não consigo descobrir isso para a vida de mim!
Alguém ajude
Acabei de criar um erro específico sem todas as instruções if que tenho no meu programa atua
package bs;
import java.util.InputMismatchException;
import java.util.Scanner;
public class bs {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
boolean continueVar = true;
while (continueVar) {
try {
System.out.println("Enter Something");
int input = sc.nextInt();
} catch (InputMismatchException i) {
System.out.println("What the f***?");
continueVar = true;
}
}
}
}
O loop infinito ocorre quando a exceção de incompatibilidade de entrada é capturada. Eu acho que, pelo menos, pediria ao usuário para digitar novamente suas entradas, mas, em vez de fazer isso, apenas continua no loop da seguinte forma:
run:
Enter Something
df
What the f***?
Enter Something
What the f***?
Enter Something
What the f***?
Ele age como se estivesse apenas ignorando o objeto sc do scanner?!