How would I use a while loop to keep requesting user input

前端 未结 3 1150
日久生厌
日久生厌 2021-01-17 04:50

I\'ve tried a couple of things with the while loop and can\'t seem to get it to work. I want to keep requesting user input until the user inputs the number 0, here is the co

相关标签:
3条回答
  • 2021-01-17 05:23

    Use a while loop above input line as:

     while(true)
    

    And, use if condition to break.

    if(year == 0)
        break;
    

    Also, condition for leap year is wrong in your code. It should be:

    if((year % 100 == 0 && year % 400 == 0) || (year % 4 == 0 && year % 100 != 0))
        //its a leap year
    else
        //its not
    

    PS: As in comments, I'll give a complete code:

    import java.util.*;
    
    public class Task10 {
    
    public static void main(String[] args) {
        System.out.println("Enter a year to check if it is a leap year");
        while(true){
        Scanner input = new Scanner(System.in);
            int year = input.nextInt();
            if(year == 0)
                break;
            if((year % 100 == 0 && year % 400 == 0) || (year % 4 == 0 && year % 100 != 0))
                System.out.println(year + " is a leap year");
            else
                System.out.println(year + " is not a leap year");
        }
    }
    
    }
    
    0 讨论(0)
  • 2021-01-17 05:34

    You should place your input taking code inside a while loop aned execute while loop untill year is 0 or lesser.

    public static void main(String[] args) {
            int year = 1;
            while(year > 0)
            {
                System.out.println("Enter a year to check if it is a leap year");
                Scanner input = new Scanner(System.in);
                year = input.nextInt();
                if ((year % 4 == 0) || ((year % 400 == 0) && (year % 100 != 0)))
                    System.out.println(year + " is a leap year");
                else
                    System.out.println(year + " is not a leap year");
            }
    
    
        }
    
    0 讨论(0)
  • 2021-01-17 05:42

    You need to do something to keep you input loop running until a stopping condition is encountered (which in your case is that when the user inputs 0)

    // First get the scanner object with the input stream
    Scanner sc = new Scanner(System.in); 
    
    // Just using do-while here for no reason, you can use a simple while(true) as well
    do{
        int input = sc.nextInt();  // read the next input
        if (int == 0) { // check if we need to exit out
            // break only if 0 is entered, this means we don't want to run the loop anymore
            break;
        } else {
            // otherwise, do something with the input
        }
    } while(true); // and keep repeating
    
    0 讨论(0)
提交回复
热议问题