Java错误协助

时间:2018-08-09 00:26:03

标签: java arrays compiler-errors

有一个问题大头针指向了我与此程序有关的最后一个问题。它旨在接受用户输入的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周围搜索并搜索了一些可能向正确方向指出我的人,这将对您有很大的帮助。预先感谢。

1 个答案:

答案 0 :(得分:2)

您设置了数组大小3。数组的索引从0开始。应该是

((intArray[0] + intArray[1] + intArray[2]) / 3.0)

此外,如果所有考试分数都相同怎么办?我的意思是您正在使用Set,其中一个元素仅出现一次。