如何将数组中的数字计为奇数或偶数?

时间:2015-10-20 17:07:50

标签: java

我在java中编写了代码,但它不算是奇数或偶数。它只计算偶数。如果我错过了什么?

import java.util.Scanner;

public class OddEven {
    //create the check() method here
    static void check(int[] x, int n) {
        x = new int[100];
        Scanner in = new Scanner(System.in);

        while (in.hasNextInt()) {
            x[n++] = in.nextInt();
        }

        if (x[n] % 2 == 0) {
            System.out.println("You input " + n + " Even value");
        } else if (x[n] % 2 == 1) {
            System.out.println("You input " + n + " Odd value");
        }
        while (in.hasNextInt()) ;
    }

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        //read the data here
        System.out.print("Input a list of Integer number : ");

        int[] x = new int[100];
        int n = 0;
        check(x, n);

        in.close();
    }

}

1 个答案:

答案 0 :(得分:0)

检查这些循环:

这基本上将所有内容都放在x。

 while(in.hasNextInt()) {
        x[n++] = in.nextInt();  
    }

这只是循环直到它没有它。

while(in.hasNextInt());

这意味着,if块甚至不在循环中。但是,第一个while循环后缀增加n,这意味着即使您有一个数字,它也会分配:

x[0] = 123;

然后n = 1。这意味着,if块将检查下一个字段。但默认情况下它为0,这将显示它是偶数。

这会更有意义:

x= new int[100];
Scanner in = new Scanner(System.in);
while(in.hasNextInt()) {
        x[n] = in.nextInt();  

         if(x[n]%2==0){

             System.out.println("You input "+n+" Even value");

         }else if(x[n]%2==1){

             System.out.println("You input "+n+" Odd value");

         }
         n++;
   }