不能在Java中使用两个for循环单独输出

时间:2016-02-25 05:55:45

标签: java for-loop arraylist

在下面的程序中,我使用了两个双数组列表和两个for循环,在简单的减去计算之后取总和输出。但是这段代码没有像我预期的那样给出单独的总和答案。

import java.util.ArrayList;

public class Test2forloop {
    public static void main(String[] args) {

        double sum = 0;
        double x=0.;

        ArrayList<Double> arr1 =  new ArrayList<Double>();
        arr1.add(1.0);
        arr1.add(2.0);
        arr1.add(3.0);
        arr1.add(4.0);
        arr1.add(5.0);

        ArrayList<Double> arr2 = new ArrayList<Double>();
        arr2.add(6.0);
        arr2.add(7.0);

        for (int j = 0; j < arr1.size(); j++) {
        for (int i = 0; i < arr2.size(); i++) {

           x= arr2.get(i) - arr1.get(j);
           sum=sum+x;  
        }
        System.out.println("sum="+sum);
        }
    }}

此程序输出是,

    sum=11.0
    sum=20.0
    sum=27.0
    sum=32.0
    sum=35.0

但我需要输出,

    sum=11.0
    sum=9.0
    sum=7.0
    sum=5.0
    sum=3.0

我需要做些什么才能获得正确的输出?

2 个答案:

答案 0 :(得分:5)

for (int j = 0; j < arr1.size(); j++) {
    sum = 0;
    for (int i = 0; i < arr2.size(); i++) {

           x= arr2.get(i) - arr1.get(j);
           sum=sum+x;  
}

您需要在计算前将sum初始化为0

答案 1 :(得分:2)

请尝试以下代码:

import java.util.ArrayList;

public class Test {
    public static void main(String[] args) {
        double sum = 0.0;
        double x = 0.0;

        ArrayList<Double> arr1 = new ArrayList<Double>();
        arr1.add(1.0);
        arr1.add(2.0);
        arr1.add(3.0);
        arr1.add(4.0);
        arr1.add(5.0);

        ArrayList<Double> arr2 = new ArrayList<Double>();
        arr2.add(6.0);
        arr2.add(7.0);

        for (int j = 0; j < arr1.size(); j++) {
            sum = 0.0;
            for (int i = 0; i < arr2.size(); i++) {
                x = arr2.get(i) - arr1.get(j);
                sum += x;
            }
            System.out.println("sum=" + sum);
        }
    }
}