boolean loop = false;
double numberOfStudents;
System.out.print("Enter a number: ");
if ((scnr.nextLine().trim().isEmpty()) ) {
    loop = true;
}
while (loop) {
    System.out.println("Enter a number");
    if (scnr.hasNextDouble() ){
        System.out.println("Loop has stopped");
        numberOfStudents = scnr.nextDouble();
        loop = false;
    }
}           
System.out.println("You're outside the loop!");
I'm trying to get the program to say "Enter a number" until the user has entered an actual number (no white spaces or letters or signs). When the user has entered a number, it sets numberOfStudents equal to that number and breaks out of the loop.
But if you hit enter twice, it doesn't iterate. It only displays "Enter a number" once.
What is wrong with the loop logic? Why isn't it looping until valid input is taken?
 
     
     
     
     
     
     
     
     
     
     
    