简体   繁体   中英

I want to print even and odd number from an input array list

I want to print even and odd number from an input array list.

Input : 1 2 3 4

Expected output

Even number is : 2 4

Odd number is : 1 3

but i get my output is

Odd number is [1]
Even number is [2]
Odd number is [1, 3]
Even number is [2, 4]

I think is the for loop there might put wrongly?

import java.util.ArrayList;
import java.util.Scanner;

public class Question1 {
    public static void main(String[] args) {
        ArrayList<Integer> even = new ArrayList<Integer>();
        ArrayList<Integer> odd = new ArrayList<Integer>();

        int[]number=new int[10];
        Scanner read = new Scanner (System.in);

        System.out.print("Enter number :" );

        for(int i=0;i<number.length;i++){
            number[i]=read.nextInt(); 

            if(number[i]%2==0){
                even.add(number[i]);  
                System.out.println("Even number is " + even);
            }
            else{
                odd.add(number[i]);
                System.out.println("Odd number is " + odd);
            }
        }   
    }
}

The program is working correctly, but your println statements should go after the for loop rather than inside of it. The output shows that it's printing the lists of odd and even numbers as they're generated , rather than after the whole input set has been processed.

...
for(int i=0;i<number.length;i++){
    number[i]=read.nextInt();
    if(number[i]%2==0)
        even.add(number[i]);
    else
        odd.add(number[i]);
}
System.out.println("Even number is " + even);
System.out.println("Odd number is " + odd);
...
public static void main(String[] args) {
        ArrayList<Integer> even = new ArrayList<Integer>();
        ArrayList<Integer> odd = new ArrayList<Integer>();

        int[] number = new int[10];
        Scanner read = new Scanner(System.in);

        System.out.print("Enter number :");

        for (int i = 0; i < number.length; i++) {
            number[i] = read.nextInt();
            if (number[i] % 2 == 0) {
                even.add(number[i]);
            } else {
                odd.add(number[i]);
            }
        }
        System.out.println("Even number is :");
        for (Integer e : even) {
            System.out.print(e + " ");
        }
        System.out.println("\nOdd number is :");
        for (Integer o : odd) {
            System.out.print(o + " ");
        }
    }

You are printing inside the for loop where you are reading the user input. Print your data after you take the input as above.

Also note the difference in the way the output is formatted using println and print methods.

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