2017-03-15 22 views
0

我試圖將30個元素的數組轉換爲30個隨機數的數組,但我不斷收到在「數字[counter] = randomInt;」上的錯誤「非靜態變量rand不能在靜態上下文中引用」 我在這方面相當新穎,我已經四處尋找類似的問題和解決方案,但我發現的一切都不清楚。錯誤:當試圖填充和隨機數組時,得到「非靜態變量...不能被引用」

public static void main(String[] args) 
{ 
    final int length = 30; 
    int numbers[] = new int[length]; 
    int randomInt; 
    int counter; 

    for(counter = 0; counter < numbers.length; counter++) 
    { 
     randomInt = 1 + rand.nextInt(100); 
     numbers[counter] = randomInt; 
     System.out.printf("Digit %d: %d \n", counter, numbers[counter]); 
    } 
} 

}

+0

您是否定義過rand? – Mashakal

+0

對於要引用的非靜態變量,必須首先創建封閉類的實例。在你的問題中包含代碼中的'rand'聲明。 –

回答

1

您使用前需要先實例化一個名爲randRandom類對象。

public static void main(String[] args) 
{ 
    final int length = 30; 
    int numbers[] = new int[length]; 
    int randomInt; 
    int counter; 
    Random rand = new Random(); 

    for(counter = 0; counter < numbers.length; counter++) 
    { 
     randomInt = 1 + rand.nextInt(100); 
     numbers[counter] = randomInt; 
     System.out.printf("Digit %d: %d \n", counter, numbers[counter]); 
    } 
} 
+0

謝謝。我實際上有「Random rand = new Random();」代碼行的問題,雖然是我不小心鍵入主要方法之外。乾杯! –

+0

沒問題 - 如果現在一切正常,請務必將問題標記爲已回答:) – Pat

相關問題