我将0到1000之间的所有数字相加,或者是3到5。我只是很难将它们相加。我继续收到错误消息:线程“主”中的异常java.lang.IndexOutOfBoundsException:索引:468,大小:468
我的密码
//Multiple of 3 and 5 up to 1000
int total = 0;
int answer = 0;
ArrayList<Integer> multof3 = new ArrayList<Integer>();
for(int i =0; i <=1000; i++){
if(i % 3 == 0 || i % 5==0){
multof3.add(i);
total++;
}else{
continue;
}
}
System.out.println(multof3);
System.out.println(total);
//looping through array to get sum of elements
for(int x =0; x <= multof3.size(); x++){
answer= answer + multof3.get(x);
}
System.out.println(answer);
有人知道原因吗?我不明白为什么它不起作用。它打印出了arraylist,所以我当然应该将元素加在一起...
最佳答案
遍历数组时,必须记住它是从0开始索引的。
for(int x =0; x < multof3.size(); x++){
answer= answer + multof3.get(x);
}
如果列表中有468个项目,则size()将返回468,但最后一个项目位于索引467。使用增强的for循环可以帮助避免此类问题:
for(Integer i: multof3){
answer += i;
}