方法product()乘以ArrayList的元素并返回整数'n',这是这些元素的乘法。在Test()类中,调用方法product(),该方法对名为'lis'的ArrayList进行操作,并打印值'n'。
import MathBasic.SimpFraction;
import java.util.ArrayList;
public class Test {
public static void main(String[] args) {
ArrayList<Integer> lis = new ArrayList<>();
for (int i=1;i<=6;i++){
lis.add(i);
}
int result = SimpFraction.product(lis);
System.out.println(result);
}
}
//mathbasic package
package MathBasic;
import java.util.ArrayList;
public class SimpFraction {
public static int product (ArrayList<Integer> m){
int n = 1;
for (int i = 0; i <= m.size(); i++)
n = n*m.get(i);
return n;
}
}
编译代码时,会产生以下错误:
run:
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 6, Size: 6
at java.util.ArrayList.rangeCheck(ArrayList.java:653)
at java.util.ArrayList.get(ArrayList.java:429)
at MathBasic.SimpFraction.product(SimpFraction.java:94)
at cubicequationTest.main(cubicequationTest.java:32)
C:\(...)\NetBeans\Cache\8.1\executor-snippets\run.xml:53: Java returned: 1
FALHA NA CONSTRUÇÃO (tempo total: 0 segundos)
答案 0 :(得分:1)
您正在循环播放。
{% for t in tools %}
{% for tag in tags.all %}
<div class="col-md-3 col-sm-6">
<div class="c-content-feature-2" data-wow-delay1="1s" data-height="height">
<h5 class="c-font-uppercase c-center"><a href="{% url "products:tool_list_by_tag" tag.slug %}">{{ tag.name }}</a></h5>
</div>
</div>
{% if not forloop.last %} {% endif %}
{% endfor %}
{% endfor %}
以上代码让您从public class SimpFraction {
public static int product (ArrayList<Integer> m){
int n = 1;
for (int i = 0; i <= m.size(); i++)//this is incorrect
n = n*m.get(i);
return n;
}
}
循环。当您的列表大小仅为0, 1, 2, 3, 4, 5, 6
7
个增量
由于任何列表的第一个索引为6
,而您的0
应将int i = 0
更改为<=
喜欢这样
<
这将循环for (int i = 0; i < m.size(); i++)//this is correct
并且不会超过索引总数
答案 1 :(得分:0)
在产品方法的for循环中,边界条件错误。您想要到达索引6处的元素,但是,大小为6的arraylist最大数字5作为索引。