Я только начинаю java, но я не совсем понимаю, что случилось. Я предполагаю, что это связано с моим массивом строк. Когда я запускаю его, после первого ввода, я получаю сообщение об ошибке:Проблема с массивами и строками
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
at CurveBreaker.main(CurveBreaker.java:13)
Любая помощь будет очень признательна.
import java.util.Scanner;
public class CurveBreaker {
public static void main(String[]args){
Scanner input = new Scanner(System.in);
System.out.println("Enter the number of students.");
int i = input.nextInt();
int[] StudentGrades = new int[i];
String[] Students = new String[i];
System.out.println("Enter the name of the student.");
Students [i] = input.next();
System.out.println("Enter the student's score.");
StudentGrades[i] = input.nextInt();
String Best = Students [i];
int BestNumb = StudentGrades [i];
i--;
for(i=i; i>0;i--){
System.out.println("Enter the name of the student.");
Students [i] = input.next();
System.out.println("Enter the student's score.");
StudentGrades[i] = input.nextInt();
if(StudentGrades[i] > BestNumb){
BestNumb = StudentGrades[i];
Best = Students [i];
}
}
System.out.println("The highest score was " + BestNumb + " which was achieved by " + Best);
}
}
Какие значения вы указали? – Ascalonian
Проверьте, что это 'for (i = i; i> 0; i--) {' делает ... – MadProgrammer
Ошибка, похоже, исходит от 'Students [i] = input.toString();'. Эта строка не имеет никакого смысла. Если кто-то ввел '10', самым большим индексом, который вы можете использовать, является' 9' – Ascalonian