简体   繁体   中英

Java program reading indefinite amount of numbers from a user till a positive is entered

I need to write a java program reading in an indefinite amount of numbers and saves them to a collection of numbers, until an (even number) is entered in by the user. I have tried with a while loop, that when a positive number is found in it it stops. But it is not really working. Here is codes I have tried:

public static void main(String[] args) {

    int programInteger = 1;
    int inputtedInteger;
    
    while (programInteger < 2) {
    System.out.println("Enter a number: "); //Asks user to input a number
    Scanner in = new Scanner(System.in);
    inputtedInteger = Scanner(in.nextLine);
    
    if (inputtedInteger != 0) {
        System.out.println("The number "+ inputtedInteger +" that you inputted is not an even number, try again: ");
        inputtedInteger=in.nextInt();
    }
    else if (inputtedInteger % 2 == 0){ 
        programInteger =+1;
        System.out.println("The number "+inputtedInteger+" that you entered is an even number!");
    }
    
}
    
}
/*  if(inputtedInteger % 2 == 0) {
        System.out.println("The number "+ inmatatTal +" you entered is an even number!");
    }
        else {
            System.out.println("Enter a number?! ");
            inputtedInteger = in.nextInt();
        
        }

Fixing a few things in the logic of the loop should work:

int inputtedInteger = 0;
Scanner in = new Scanner(System.in);
    
while (inputtedInteger < 1) {
    System.out.println("Enter a number: "); //Asks user to input a number
    inputtedInteger = in.nextInt();
    
    if (inputtedInteger % 2 != 0) {
        System.out.println("The number "+ inputtedInteger +" that you inputted is not an even number, try again: ");
    }
    else if (inputtedInteger % 2 == 0){ 
        System.out.println("The number "+inputtedInteger+" that you entered is an even number!");
    }
    
}

I would setup an outline for the code like this:

setup Scanner, create collection
while true:
   userInput = scanner.nextInt()
   if userInput > 0: break
   collection.add(userInput)
print('user entered', collection.length(), 'numbers.')

Hope that helps. I'll leave you to fill this using actual Java syntax. I wrote a comment on the OP on why your structure is failing to solve the issue at hand.

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