Чтение входных данных JOptionPane в массив - PullRequest
0 голосов
/ 16 сентября 2018
package javaapplication3;

import javax.swing.JOptionPane;

public class JavaApplication3 {


    public static void main(String[] args) {

        Double[] temp = new Double[7];
        String[] days = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturady"};


        int i = 0;
        while (i <= days.length){

            temp[i] = Double.parseDouble(JOptionPane.showInputDialog("Please enter " + days[i] + "'s temperature in Fahrenheit."));


            i++;
        }

    }
}

Я пытаюсь прочитать входные данные от пользователя во временный массив, но я получаю сообщение об ошибке ArrayIndexOutOfBounds в конце моей программы.Нужно ли корректировать размер моего массива или я посылаю слишком много входных данных?

1 Ответ

0 голосов
/ 16 сентября 2018

У вас есть 7 элементов в массиве «days» и, соответственно, создан массив «temp» размером 7 элементов.Но в цикле while вы выполняете итерацию от индекса 0 до 7 (8 итераций!) И получаете доступ к элементу массива days с этим индексом (while (i <= days.length) {...).

Таким образом, в конце вы получаете доступ к элементу с индексом 7 вашего массива дней, но так как индексы массива начинаются с 0, последний индекс этого массива равен 6!

while (i < days.length) {...

Должен исправить ваш код.

...