简体   繁体   中英

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();
                    }
                }
            }      

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");
             }
         }
     }      

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM