user3505003
user3505003

Reputation: 55

while() loop for user input

I'm working on setting up a while() that executes until the user enters an integer. However, the way I have it now, the loop prints the message "Please enter an integer" again after the integer has been entered, and then the program executes normally. Can someone suggest a way to make not print that message again after an integer has been entered? Thanks!

            System.out.println("Enter word length");
            if(in.hasNextInt())
            {    
                n = in.nextInt();
            }
            else
            {
                while(in.hasNext()) //this is the loop i'm talking about
                {
                    System.out.println("Please enter an integer");
                    if(in.hasNextInt())
                    {    
                        n = in.nextInt();
                        break;
                    }
                    else
                    {
                        String c = in.next();
                    }
                }
            }      

Upvotes: 0

Views: 226

Answers (1)

araut
araut

Reputation: 576

I am assuming that you want user to enter int (or Integer) and repeatedly ask user until user enters int(or Integer). If so, try this:

System.out.println("Enter word length");
if(in.hasNextInt()) {    
    n = in.nextInt();
 } else {
         while(in.hasNext()) //this is the loop i'm talking about
         {

             if(in.hasNextInt())
             {    
                 n = in.nextInt();
                 break;
             }
             else
             {
                 String c = in.next();
                 System.out.println("Please enter an integer");
             }
         }
     }      

Upvotes: 2

Related Questions