I'm trying to continue prompting the user for a valid payrate if an invalid rate (meaning including a letter) is supplied. The problem is that if I enter a letter instead of a number then I get the "Payrate must be > 0" message endlessly; however, if I enter 0 or a negative number I'm prompted as expected.
What am I doing wrong and how would I fix this?
while (payrate <= 0) {
    try {
        System.out.print("Enter payrate: "); //ask for payrate
        payrate = input.nextFloat();  //store input from console
    } catch (Exception InputMismatchException) {
        System.out.println("Payrate must be > 0.");
        payrate = 0;
    }
}
                You could use input.next() in your exception, since .nextFloat() is not clearing the invalid value. 
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With