所以当我的老师不在时,我得到了这个任务,基本上我必须做一个学生项目.学生有姓名,分数和平均分.为了计算平均值,我决定将标记存储在int[]数组中.
public void addQuiz(int m)
{
int l = (marks.length);
marks[l] = m;
}
int[] marks = new int[8];
Run Code Online (Sandbox Code Playgroud)
但是当我运行该功能时:
student.addQuiz(90);
Run Code Online (Sandbox Code Playgroud)
我明白了:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 8
Run Code Online (Sandbox Code Playgroud)
有帮助吗?
我不确定这int[8]部分是做什么的,但它在我遵循的教程中,它会给我一个null没有它的指针.总共有八个标记,所以我只做了8个.
您无法动态地向数组添加内容.您应该使用数组列表.
Arraylist<Integer> marks = new ArrayList<Integer>();
Run Code Online (Sandbox Code Playgroud)
然后在你的addQuiz方法中:
public void addQuiz(int m) {
marks.add(m)
}
Run Code Online (Sandbox Code Playgroud)
您可能还需要更改计算平均值的方法,但这应该是微不足道的,我会留给您.
错误说:ArrayIndexOutOfBoundsException:8
你有一个包含8个元素的数组,索引从0到7(含).这个数组的长度为8,当你只能达到7时,你实际上是在尝试访问标记[8].
| 归档时间: |
|
| 查看次数: |
164 次 |
| 最近记录: |