【问题标题】:Index out of bounds exception error in randomizer [duplicate]随机发生器中的索引越界异常错误[重复]
【发布时间】:2023-03-28 02:38:01
【问题描述】:

我刚刚开始编程,并试图制作一个随机发生器,其中将生成一个随机数,该随机数将与一个名称链接,然后会显示出来,但我无法弄清楚我的问题代码,这是弹出的错误

"Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 9
    at random.Randomiser.main(Randomiser.java:21)" 

package random;

public class Randomiser {

    public static void main(String[] args) {

        int number = ((int) (Math.random()*10))+1;

        int[] intArray = new int[9];

        intArray[0] = 1;
        intArray[1] = 2;
        intArray[2] = 3;
        intArray[3] = 4;
        intArray[4] = 5;
        intArray[5] = 6;
        intArray[6] = 7;
        intArray[7] = 8;
        intArray[8] = 9;
        intArray[9] = 10;

        if (number == 1) 
            System.out.println("Isaac");
        if (number == 2) 
            System.out.println("Madgeline");
        if (number == 3) 
            System.out.println("Cain");
        if (number == 4) 
            System.out.println("Judas");
        if (number == 5) 
            System.out.println("Blue Baby");
        if (number == 6) 
            System.out.println("Eve");
        if (number == 7) 
            System.out.println("Samson");
        if (number == 8) 
            System.out.println("Azazel");
        if (number == 9) 
            System.out.println("Lazarus");
        if (number == 10) 
            System.out.println("Eden");
    }
}

【问题讨论】:

  • JavaScript 标记已被删除,因为您的问题似乎与这种语言无关。请谨慎使用标签,因为正确使用标签可以让合适的专家解决您的问题,但反过来也是如此。
  • protip:初始化你的数组,使用for循环;喜欢for(int i=0; i < intArray.length; i++){ intArray[i] = i+1; }

标签: java arrays


【解决方案1】:

更改数组大小。现在你的尺寸是9,最大索引是8

int[] intArray = new int[10];

【讨论】:

    【解决方案2】:

    这里有从 0 到 8 的索引。您没有第 9 个索引。 int[] intArray = new int[9]; 改为int[] intArray = new int[10] 或删除intArray[9] = 10;

    你可以像这样声明你的数组int[] intArray = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

    【讨论】:

      【解决方案3】:

      你必须像这样创建数组:

      int[] intArray = new int[10]; 
      

      当你创建一个数组时,你会给出大小:

      int[] intArray = new int[9];  // size is 9
      

      当你访问它时,你从位置 0 开始,所以当你这样做时:

      intArray[9] = 10; 
      // you're accessing to a non created position of the array 
      // max position is intArray[8] then:
      // IndexOutOfBounds exception is thrown.
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-06-13
        • 2017-03-23
        • 2013-03-05
        • 1970-01-01
        • 2015-06-28
        • 2015-12-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多