Помощь при ошибках Java

У меня проблема, указывающая на мою последнюю проблему с этой программой. Он предназначен для ввода 3 результатов тестов, введенных пользователем. Затем разделите на количество баллов за тест на среднее значение. Я запускаю программу и могу отобразить поля ввода, хотя когда я дойду до последнего шага, я получаю сообщение об ошибке ... "Исключение в потоке" main "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));

        }

    }

}

Я погуглил и немного искал, и любой, кто может указать мне в правильном направлении, будет большим подспорьем. Заранее спасибо.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
3
0
30
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы устанавливаете размер массива 3. Индекс массива начинается с 0. Должен быть,

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

Более того, что, если все результаты тестов одинаковы? Я имею в виду, что вы используете Set, в котором элемент встречается только один раз.

Хороший отзыв о Set

Scary Wombat 09.08.2018 02:35

Я понял, о чем вы говорите, заменил эту строку кода и повторно запустил программу. Я ввожу test1 как 70, test2 как 80 и test3 как 90. Хотя в среднем я получаю 56,666667. Разве в среднем не должно быть 80?

Ryan Luber 09.08.2018 02:37

Теперь я понимаю, что делал не так, спасибо за вашу помощь. Я новичок на этом веб-сайте и все еще полностью изучаю все тонкости if. Я отмечу, когда что-нибудь будет полезно.

Ryan Luber 09.08.2018 02:42

Другие вопросы по теме