I am writing a program that includes a test for whether the user input is a positive integer and displays an error messagge if the entry is a non-integer or negative. My code displays the intended error message if a non-integer is entered, but only re-prompts to enter a positive integer if a negative integer is entered. I've tried adding:
if (n <= 0);
System.out.print("You have not entered a positive integer");
before
n = input.nextInt();
but that makes an error message appear even if a positive integer is entered.
I have also tried:
while (!input.hasNextInt() && n <= 0)
Any help is appreciated.
Scanner input = new Scanner( System.in );
int n = 0;
do {
System.out.print("Please enter a positive integer: ");
while (!input.hasNextInt()){
System.out.print("You have not entered a positive integer. \nPlease enter a positive integer: ");
input.next();
}
n = input.nextInt();
} while (n <= 0);