- 已关闭。**此问题为not reproducible or was caused by typos。当前不接受答案。
这个问题是由打字错误或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
5小时前关门了。
Improve this question
我的程序应该打印出偶数的和与奇数的乘积,但是它打印出了0和1,这是偶数和奇数的初始值
public static void main(String[] args) {
int even = 0;
int odd = 1;
int n;
System.out.println("Skriv in tall");
Scanner input = new Scanner(System.in);
n = input.nextInt();
int[] array = new int[n];
for (int i = 0; i < array.length; i++) {
if (array[i] % 2 == 0) {
even += array[i];
} else {
odd = odd * array[i];
}
}
System.out.println(even);
System.out.println(odd);
}
程序可能根本就没在运行
我已经检查了每一行代码的功能,但找不到哪里做错了。
2条答案
按热度按时间4nkexdtk1#
您创建了一个数组,但其中没有任何数字。这就是为什么您会得到odd和even的初始值。
1bqhqjot2#
您已经初始化了数组,但从未更新过值,因此它用0填充(int的默认值为0)
因此,
even+=array[i]
总是even+0
,并且由于else条件从未达到,所以odd从未被更新,因此它保持为1。用户输入“4”的示例场景:
本质上,对于n=4的值,数组将为[0,0,0,0](默认int值)
因此,在循环中,它将始终处于第一个条件,即
array[i]%2 == 0
和even=+array[i]
将是even=even+0
从你的评论来看-
尽管我可以用这种方式将用户输入转换为int数组
不,它只是创建了一个n大小的数组,要用所有的值填充数组,请使用这个。