奇数/偶数输出程序仅给出1个答案

时间:2016-01-25 16:25:10

标签: java java.util.scanner

我坚持分配需要程序接受多个数字,然后输出"是"如果奇数和"否"如果是偶数,并且无法弄清楚如何使程序接受多于1的int,然后输出正确的println。 到目前为止,这是我的代码。

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");
    }
  }
}

2 个答案:

答案 0 :(得分:1)

我猜你的意思是numbers[i] % 2,而不是i % 2。否则,您未使用从System.in读取的值。

请注意,该数组是不必要的,因为您再也不会使用该数组:只需在循环中声明一个变量。此外,您不需要检查<something> % 2两次:条件是互斥的。你也可以阅读,直到in.hasNextInt()为假:

while (in.hasNextInt()) {
  int v = in.nextInt();
  if (v % 2 == 0) {
    System.out.println("Yes");
  } else {
    System.out.println("No");
  }
}

答案 1 :(得分:0)

首先将所有数字存储在一个数组中。稍后循环它。

不检查if(i % 2 == 0 )之类的索引值,而是检查输入的数字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
  }

<强>输出:

1 4 3 6 7 8 9 0 2 3 没有 是 没有 是 没有 是 没有 是 是 否