在下面的程序中,我使用了两个双数组列表和两个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
我需要做些什么才能获得正确的输出?
答案 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);
}
}
}