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




Вы устанавливаете размер массива 3. Индекс массива начинается с 0. Должен быть,
((intArray[0] + intArray[1] + intArray[2]) / 3.0)
Более того, что, если все результаты тестов одинаковы? Я имею в виду, что вы используете Set, в котором элемент встречается только один раз.
Я понял, о чем вы говорите, заменил эту строку кода и повторно запустил программу. Я ввожу test1 как 70, test2 как 80 и test3 как 90. Хотя в среднем я получаю 56,666667. Разве в среднем не должно быть 80?
Теперь я понимаю, что делал не так, спасибо за вашу помощь. Я новичок на этом веб-сайте и все еще полностью изучаю все тонкости if. Я отмечу, когда что-нибудь будет полезно.
Хороший отзыв о
Set