Java数组问题。抛出界限异常

时间:2017-05-03 23:11:44

标签: java arrays

好的,我不知道为什么但是我继续在我身上得到一个出界的例外 即使我认为它仍然在所述数组的范围内。

public class Assignment04Arrays
{
    public static void main(String[] args)
    {
        Scanner inputArray = new Scanner(System.in);
        System.out.print("How many numbers do you want to enter? ");
        int numbers = inputArray.nextInt();

        int x = 0;
        int y = 0;
        int z = 0;

       int arrayTotal = numbers;
        double[] myArray;
        myArray = new double[arrayTotal];

            System.out.println(arrayTotal);

        while (x<numbers){
            Scanner arrayNumbers = new Scanner(System.in);
            System.out.print("Please enter a number: ");
            double arraynumber = arrayNumbers.nextDouble();

            System.out.println(x);
            System.out.println(arraynumber);

            /*fails here when it shouldn't*/
            myArray[x] = arraynumber;
            x++;
        }      
    }

}

1 个答案:

答案 0 :(得分:0)

所以,通过命令行在我的机器上测试这个代码,这非常好用。此代码不应该有任何问题,但如果不知道您的环境是什么以及您的测试输入是什么,就很难分辨。

要尝试的几件事情:

  • 摆脱while循环中的额外扫描仪。您在每次迭代时都创建了一个扫描程序而没有关闭它们中的任何一个,这可能会导致一些奇怪的事情,但是您正在运行它。
  • 尝试通过命令行运行它(javac Assignment04Arrays.java编译它然后java Assignment04Arrays运行它)。如果这样可行,那么您可能正在编译它。

如果这还没有解决,那么您的测试输入具体是导致此错误的原因是什么?