2015-08-12 2 views
0

Я только что начал программировать и пытался создать рандомизатор, где будет генерироваться случайное число, и это случайное число будет связано с именем, которое будет отображаться, и я могу «т выяснить проблемы в моем коде, это ошибка, которая всплываетОшибка исключения из-за пределов исключения в рандомизаторе

"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"); 
    } 
} 
+0

Тег javascript удален, так как ваш вопрос не имеет никакого отношения к этому языку. Пожалуйста, будьте осторожны с использованием тегов, так как правильное использование может привлечь правильных экспертов к вашему вопросу, но также верно и обратное. –

+0

protip: для инициализации массива используйте цикл for; например 'for (int i = 0; i ochi

ответ

0

Изменить размер массива. Теперь ваш размер 9 и максимальный индекс 8:

int[] intArray = new int[10]; 
0

Вы индексы от 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};

0

Вы должны создать массив так:

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. 
Смежные вопросы