No código abaixo eu estou tentando fazer com que enquanto o usuário não colocar um número, repetir a acão dentro do While, mas pelo visto, acabou gerando um Loop Infinito e eu não estou conseguindo contornar isso…
[ Código ]
//Início
import java.util.InputMismatchException;
import java.util.Scanner;
public class RefactorException {
public static void main(String[] args) {
Scanner teclado = new Scanner(System.in);
boolean flag = false;
try {
System.out.println("Eu sei dividir!");
System.out.println("Informe o primeiro valor: ");
int x = teclado.nextInt();
System.out.println("Informe o segundo valor: ");
int y = teclado.nextInt();
double z = ( x/y );
System.out.println("O resultado da soma é " + z);
}
catch (ArithmeticException erroDivisãoPorZero) {
System.out.println("Erro: divisão por zero!");
}
catch(NumberFormatException erro){
System.out.println("Insira apenas números." + "\nErro!");
}
catch (InputMismatchException erroString){
System.out.println("Operação inválida!"
+ "\nDivisão por caractere inválido.");
}
while(!flag) {
try {
System.out.println("Eu sei dividir!");
System.out.println("Informe o primeiro valor: ");
int x = teclado.nextInt();
System.out.println("Informe o segundo valor: ");
int y = teclado.nextInt();
double z = ( x/y );
System.out.println("O resultado da soma é " + z);
flag = true;
}
catch(InputMismatchException erro) {
flag = false;
System.out.println("\n---------Erro!---------"
+ "\n---Insira um número!---");
}
}
}
}