2015-04-15 3 views
0

Я создал этот метод randomInt, который дает случайное число от -5 до 15. Я создал другой метод randomIntArray, который вызывает randomInt в цикле и сохраняет случайные целые числа в массив. Однако, когда я пытаюсь распечатать его, он просто возвращает ArrayIndexOutOfBoundsException.целочисленный массив не будет печатать

public static int randomInt(int low, int high) { 
    double e; 
    double x = Math.random(); 
    e = low + x * (high - low); 
    return (int) e; 
} 

public static int[] randomIntArray(int n) { 
    int[] a = new int[n]; 
    for (int i = 0; i < a.length; i++) { 
     a[i] = randomInt(-5, 15); //"-5&15 are the lower and upper bounds of the random number array 
    } 
    return a; 
} 

В randomInt, когда я не бросил возвращаемого значения в int, он работал, однако мне нужно вернуть int для массива, чтобы работать.

+0

Можете ли вы показать нам код, в котором вы печатаете массив, и даете нам трассировку стека. – user2494817

+0

Я не верю, что показанный код создаст «OutOfBoundsException». Должна быть ошибка в коде для печати содержимого массива, который вы не указали. Добавьте этот код к вопросу. :-) –

+0

Проблема, вероятно, в вашей процедуре печати. Попробуйте использовать 'System.out.println (Arrays.toString (randomIntArray (n))), чтобы печатать и видеть, есть ли у вас ошибка. –

ответ

2

Проверьте код печати после вызова randomIntArray (number);

/** 
* @param args the command line arguments 
*/ 
public static void main(String[]args) { 
    int[] myArray = randomIntArray(10); 

    // Manual iteration through your array 
    for (int i = 0; i < myArray.length; i++) { 
     System.out.print(myArray[i] + " "); 
    } 
    System.out.println(""); 

    // Use of Arrays class to print your array 
    System.out.println(Arrays.toString(myArray)); 
} 

public static int randomInt(int low, int high) { 
    double e; 
    double x = Math.random(); 
    e = low + x * (high - low); 
    return (int) e; 
} 

public static int[] randomIntArray(int n) { 
    int[] a = new int[n]; 
    for (int i = 0; i < a.length; i++) { 
     a[i] = randomInt(-5, 15); 
    }//"-5&15 are the lower and upper bounds of the random number array 
    return a; 
} 

Результаты:

enter image description here

0

http://ideone.com/3OrTei

В вызывающей функции randomIntArray (Int N):

int[] array = randomIntArray(5); 
for(int i = 0; i < array.length; i++) 
{ 
    System.out.println(array[i]); 
} 

код работает, просто убедитесь, что вы правильная печать результатов

Смежные вопросы