有一个问题大头针指向了我与此程序有关的最后一个问题。它旨在接受用户输入的3个测试分数。然后除以测试分数的平均值。我运行程序,并能够显示输入框,尽管当我到达最后一步时,我收到错误消息... “线程“主”中的异常” java.lang.ArrayIndexOutOfBoundsException:3 在Java_Lab_5.main(Java_Lab_5.java:40)
这是我的代码
import java.util.SortedSet;
import java.util.TreeSet;
import javax.swing.JOptionPane;
import javax.swing.JFrame;
public class Java_Lab_5 {
public static void main(String[] args) {
{
{
String test1= JOptionPane.showInputDialog("Test Score 1: ");
String test2= JOptionPane.showInputDialog("Test Score 2: ");
String test3= JOptionPane.showInputDialog("Test Score 3: ");
int int1 = Integer.parseInt(test1);
int int2 = Integer.parseInt(test2);
int int3 = Integer.parseInt(test3);
SortedSet<Integer> set = new TreeSet<>();
set.add(int1);
set.add(int2);
set.add(int3);
Integer [] intArray = set.toArray(new Integer[3]);
JFrame frame = new JFrame();
JOptionPane.showInternalMessageDialog(frame.getContentPane(),
String.format("Result %f", (intArray[1] + intArray[2] + intArray[3]) / 3.0));
}
}
}
我已经在Google周围搜索并搜索了一些可能向正确方向指出我的人,这将对您有很大的帮助。预先感谢。
答案 0 :(得分:2)
您设置了数组大小3
。数组的索引从0
开始。应该是
((intArray[0] + intArray[1] + intArray[2]) / 3.0)
此外,如果所有考试分数都相同怎么办?我的意思是您正在使用Set
,其中一个元素仅出现一次。