Reputation: 33
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);
}
}
}
}
Upvotes: 1
Views: 13702
Reputation: 2525
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.
Upvotes: 1
Reputation: 500
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);
...
Upvotes: 2