Параллель для цикла, выходящего за пределы java

#java #arrays #for-loop

#java #массивы #for-цикл

Вопрос:

У меня проблемы с циклом for в моем университетском проекте. Мой цикл пытается считывать и сохранять значения из КБ и сохранять в массиве. Я создал максимальное значение для своего массива, но когда я добираюсь до окончательного ввода, цикл выходит за рамки. Я знаю, что это, вероятно, что-то простое, но не могу найти решение из ответов на предыдущие вопросы. Любая помощь будет высоко оценена.

     public void getAu() {
    final int max = 7;
    String[] days = {"Monday", "Tuesday", "Wednesday", "Thursday", "Friday"  
            "Saturday", "Sunday"};
    int[] totalAu = new int[max];

    for (int index = 0; index <= max; index  ) {
        System.out.println("Please enter day of the week: ");
        days [index] = kb.next();
        System.out.println("Please enter Au: " );
        totalAu [index] = kb.nextInt();
        
     }//for
 

Комментарии:

1. Подумайте о значениях index , которые будут приниматься при выполнении цикла for, и подумайте о допустимых индексах массива из 7 элементов.

2. В вашем массиве всего 6 элементов. Посмотрите "Friday" "Saturday" , что объединяет его в одну строку. Замените на a , . Кроме того, в вашем цикле условие должно быть index < max

Ответ №1:

Массив, содержащий N элементов, имеет индексы от 0 до N-1. Вы должны продолжать цикл до тех пор, пока index < max , не index <= max :

 for (int index = 0; index < max; index  ) {
    // Here --------------^
 

Комментарии:

1. Спасибо, ребята, конкатенация и = были проблемами, которые приводили к сбою цикла. Очень признателен за помощь.