如何使用输入验证在do while循环中形成数组?

时间:2015-11-10 21:39:46

标签: java

public class Array {

  public static void main ( String[] args ) {


    int DAYS_SIZE = 5;
    double[] sales = new double[DAYS_SIZE];

    String input;
    char userResponse;
    Scanner keyboard = new Scanner(System.in);

    double total = 0;
    double average = 0;
    int index = 0;

    do {
        index++;
        System.out.print("Enter sales for day " + index  + ": ");
        sales[index] = keyboard.nextInt();             

        System.out.print("Another ( y or n )? " );
        input = keyboard.next();
        userResponse = input.charAt(0);

     } while ( userResponse == 'Y' || userResponse == 'y');   

  }
}

我在最后一天得到java.lang.ArrayIndexOutOfBoundsException:5

我知道为什么会这样,但我不知道如何解决它

1 个答案:

答案 0 :(得分:1)

在访问数组之前增加索引,而不检查索引是否已大于数组的大小。当用户输入日期和天数时,索引将大于5。

同样,当索引从0开始而不是1时,没有索引5,但只有0-4