java 奇数相乘和所有偶数相加不起作用[已关闭]

jw5wzhpr  于 2023-01-29  发布在  Java
关注(0)|答案(2)|浏览(96)

这个问题是由打字错误或无法再重现的问题引起的。虽然类似的问题在这里可能是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);

}

程序可能根本就没在运行
我已经检查了每一行代码的功能,但找不到哪里做错了。

4nkexdtk

4nkexdtk1#

您创建了一个数组,但其中没有任何数字。这就是为什么您会得到oddeven的初始值。

  • 如果你想让用户填充数组,你需要接受用户输入n次,并在一个for循环中将这些数字赋给array。
1bqhqjot

1bqhqjot2#

您已经初始化了数组,但从未更新过值,因此它用0填充(int的默认值为0)
因此,even+=array[i]总是even+0,并且由于else条件从未达到,所以odd从未被更新,因此它保持为1。
用户输入“4”的示例场景:
本质上,对于n=4的值,数组将为[0,0,0,0](默认int值)
因此,在循环中,它将始终处于第一个条件,即array[i]%2 == 0even=+array[i]将是even=even+0
从你的评论来看-
尽管我可以用这种方式将用户输入转换为int数组
不,它只是创建了一个n大小的数组,要用所有的值填充数组,请使用这个。

Arrays.fill(array, n);

相关问题