我有一个读取整数列表的程序,然后显示偶数和奇数的数量。我们假设输入以0结尾。这是程序的示例运行。
输入数字:1 2 3 4 5 6 7 8 9 0
奇数:5偶:4
然而,我的结果是 奇数:5和偶数:5。
问题是0被算作偶数。这是我的代码
public class Q75 {
public static void main(String[] args){
java.util.Scanner input = new java.util.Scanner (System.in);
double [] numbers = new double[10];
System.out.print("Enter numbers: ");
for(int i = 0;i<numbers.length;i++){
numbers[i] = input.nextDouble();
}
int Evens = 0;
int Odd = 0;
for(int i = 0;i<numbers.length;i++){
if(numbers[i]%2 == 0){
Evens++;
}else{
Odd++;
}
}
System.out.println("The number of odd numbers: " + Odd);
System.out.println("The number of even numbers: " + Evens);
}
}
答案 0 :(得分:1)
有两个选项
A)在if语句中添加另一个分支,即
if(number[i] > 0) {
if(number[i] % 2 >0)
Odd++;
else
Evens++;
}
注意:将else分支更改为else if(number[i] >0)
,您可以不使用外部if条件。
B)由于数字列表以0结尾,你可以将它作为你的for循环中的一个条件,即
for(int i =0; i < numbers.length && numbers[i] > 0 ; i++)
另外,作为经验法则,java中的变量名称以小写字母开头
答案 1 :(得分:0)
请勿检查最后一个元素:使用i < numbers.length - 1
for(int i = 0;i < numbers.length - 1; i++) {
//
}