我有一个包含四个文件的文件夹。四个文件中的每一个都包含一个整数。我的代码将文件中的整数读入ArrayList。
// Reading the save data.
File[] fileArray = SaveData.listFiles();
ArrayList<Integer> al = new ArrayList<Integer>();
// For each file in the file array
for (File file2 : fileArray ) {
FileReader fr = new FileReader(file2);
al.add (fr.read());
System.out.println(al); }
代码有效。来自文件的数据被成功读入ArrayList。问题是当我试图总结数组列表的所有元素时。
int i;
for(i = 1; i < al.size(); i++) {
Integer sum = 0;
sum += al.get(i);
System.out.println("The sum is: " + sum);
代码显示此输出:
[1]
[1, 1]
[1, 1, 3]
[1, 1, 3, 3]
The sum is: 1
The sum is: 3
The sum is: 3
代码出了什么问题?
答案 0 :(得分:7)
你已经在你的循环中声明了sum
- 所以你每次迭代都会重新开始。你想要:
int sum = 0;
for(int i = 0; i < al.size(); i++) {
sum += al.get(i);
}
System.out.println("The sum is: " + sum);
请注意:
sum
更改为int
而不是Integer
;没有必要Integer
When to use Int vs Integer 答案 1 :(得分:2)
对于一个你从i = 1
而不是正确的i = 0
开始的人。
您每次都在循环中重新初始化sum
。