2015-04-15 102 views
0

我創建了此方法randomInt,它給出了-5和15之間的一個隨機數。我創建了另一個方法randomIntArray,它在一個循環中調用randomInt,並將隨機整數存儲到數組中。但是,當我嘗試打印它時,它僅返回ArrayIndexOutOfBoundsExceptioninteger array will not print

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]); 
} 

代碼工作,只是確保你正確打印結果