我在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();
}
}
答案 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++;
}