Reputation: 5
I'm stuck on an assignment needs the program to accept multiple numbers and then output "Yes" if odd and "No" if even, and can't figure out how to make the program accept more than 1 int and then output the correct println. This is my code so far.
import java.util.Scanner;
class odd{
public static void main(String args[]){
Scanner in = new Scanner(System.in);
int[] numbers = new int[10];
for(int i = 0; i < 10; ++i) {
numbers[i] = in.nextInt();
if(i % 2 == 0 )
System.out.println("Yes");
if( i % 2 == 1 )
System.out.println("No");
}
}
}
Upvotes: 0
Views: 219
Reputation: 4135
First store all your numbers in an array. Later loop it.
Instead of checking index value like if(i % 2 == 0 )
, check the entered number if(numbers[i] % 2 == 0)
.
int[] numbers = new int[10];
//storing all the numbers in an array
for(int i = 0; i < 10; ++i)
numbers[i] = in.nextInt();
//checking each one
for(int i = 0; i < numbers.length; ++i) {
if(numbers[i] % 2 == 0 )
System.out.println("No");//even
if(numbers[i] % 2 == 1 )
System.out.println("Yes");//odd
}
Output:
1 4 3 6 7 8 9 0 2 3 No Yes No Yes No Yes No Yes Yes No
Upvotes: 0
Reputation: 140319
I'm going to guess that you mean numbers[i] % 2
, rather than i % 2
. Otherwise, you're not using the values you are reading from System.in
.
Note that the array is unnecessary, since you never use the array again: just declare a variable in the loop. Also, you don't need to check <something> % 2
twice: the conditions are mutually exclusive. You can also just read until in.hasNextInt()
is false:
while (in.hasNextInt()) {
int v = in.nextInt();
if (v % 2 == 0) {
System.out.println("Yes");
} else {
System.out.println("No");
}
}
Upvotes: 1