Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用输入验证在do while循环中形成数组?_Java - Fatal编程技术网

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

Java 如何使用输入验证在do while循环中形成数组?,java,Java,在最后一天,我一直得到java.lang.ArrayIndexOutOfBoundsException:5 我知道为什么会发生这种情况,但我不知道如何解决它在访问数组之前,您可以增加索引,但不检查索引是否已经大于数组的大小。当用户输入天数时,在您的情况下,天数索引将大于5 另外,由于索引从0开始,而不是从1开始,因此没有索引5,但只有0-4我应该添加一个决策结构来检查索引是否大于数组的大小,还是有更好的方法?为什么需要立即递增索引?只需将它移到迭代的底部。我将它放在底部,仍然可以得到java.l

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


我知道为什么会发生这种情况,但我不知道如何解决它

在访问数组之前,您可以增加索引,但不检查索引是否已经大于数组的大小。当用户输入天数时,在您的情况下,天数索引将大于5


另外,由于索引从0开始,而不是从1开始,因此没有索引5,但只有0-4

我应该添加一个决策结构来检查索引是否大于数组的大小,还是有更好的方法?为什么需要立即递增
索引
?只需将它移到迭代的底部。我将它放在底部,仍然可以得到java.lang.ArrayIndexOutofBounds异常:当我输入最后一天的销售额时,它将是5。因为你从不检查索引是否大于数组的大小。您可以添加
索引
检查您的while状态,或者如果您想给用户一条额外的消息,如“不再有剩余天数”之类,则可以单独添加
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');   

  }
}