Прочтите информацию для ВСЕХ учащихся, прежде чем выполнять какие-либо расчеты или отображать какие-либо выходные данные. Убедитесь, что 3 балла за экзамен находятся в диапазоне от 0 до 50 баллов, а финальный балл находится в диапазоне от 0 до 100 на момент ввода. Объявлены минимальные и максимальные значения постоянными, чтобы их можно было легко обновлять по мере необходимости. Если он недействителен, отобразите сообщение об ошибке и позвольте пользователю повторно ввести этот неверный счет. После того, как вся информация об учащемся будет прочитана, отобразите имя каждого учащегося в формате ФАМИЛИЯ, ИМЯ (все в верхнем регистре), процент экзаменов учащегося (общее количество всех экзаменов плюс окончательный/общий возможный) с точностью до 1 десятичного знака и итоговую оценку учащегося на основе следующие проценты:
90–100 А, 80–89,9 В, 70–79,9 С, 60–60,9 Д, ниже 60 F
Это то, что я уже напечатал, но это дает мне некоторые ошибки, и я не уверен, что правильно присваиваю значения.
import java.util.*;
import java.text.*;
public class Proj4 {
public static void main(String[] args){
Scanner s= new Scanner(System.in);
String input;
String again = "y";
int [] exams = new int[4];
int student = 1;
do
{
String [] names = new String[student];
System.out.print("PLease enter the name of student" + student );
names[student-1] = s.nextLine();
for ( int i = 1; i < exams.length; i++){
if(i==4){
System.out.print("Please enter score for Final Exam: ");
}
System.out.print("Please enter score for Exam" + i);
exams[i] = s.nextInt();
if((exams[1]<0||exams[1]>50)||(exams[2]<0||exams[2]>50)||(exams[3]<0||exams[3]>50)){
System.out.println("Invalid enter 0-50 only...");
System.out.print("Please re-enter score: ");
exams[i] = s.nextInt();
}
else if(exams[4]<0||exams[4]>100){
System.out.println("Invalid enter 0-100 only...");
System.out.print("Please re-enter score: ");
exams[i] = s.nextInt();
}
}
System.out.println("do you wish to enter another?");
again = s.nextLine();
student++;
}while (again.equalsIgnoreCase ("y"));
}
}
Это сообщение об ошибке:
Исключение в потоке «основной» java.lang.ArrayIndexOutOfBoundsException: 4 в Proj4.main(Proj4.java:32)
Но это сбивает с толку, потому что строка 32 - это просто }, так что я действительно не знаю точно, что это значит, я знаю, что мне, вероятно, нужно уменьшить длину одного из входов для массивов, но я не уверен, что и есть ли вообще более неправильно, чем это.
РЕДАКТИРОВАТЬ:
Извините, вот мой вопрос. Не могли бы вы, ребята, помочь мне разобраться в проблеме и / или сказать мне, если или что я делаю неправильно, чтобы получить требуемый от меня вывод?