2015-07-19 69 views
-3

所以我必須:我不能做雙打/雙打數組? (JAVA)

String[] program = {"total", "grade", "average"}; 

System.out.println(program[1]); 

它打印出 「品位」。

但爲什麼我不能用雙打呢?

Double[] program = {total, grade, average}; 

我希望能夠稍後使用這些變量。總共= 4,然後編程[0]。

+4

*我不能這樣做*是什麼意思?你有編譯錯誤嗎?如果是這樣,它究竟說了些什麼?你有運行時異常嗎?如果是這樣,請發佈堆棧跟蹤。 「總計」,「等級」和「平均」有哪些類型?請發佈[MCVE](http://stackoverflow.com/help/mcve)。 – Turing85

+2

在將它們添加到「Double」數組之前,您是否聲明並初始化了變量'total','grade'和'average'? – Nicklas

+0

@Nicklas否lllllllllllllllllll – Code123

回答

-1

您可能在變量尚未初始化時將變量分配給數組。

-1

我不清楚你在做什麼。您需要確保在聲明陣列時放置數字。以下作品:

Double[] a = new Double[] { 101d, 200d, 300d }; 
    System.out.println(a[0]); 

Double[] a = new Double[] { 101.0, 2.0, 30.0 }; 
    System.out.println(a[0]); 

的「d」或」 0.0' 僅僅是通知編譯器,這個數字是不是整數的方式。

+0

101d是數字還是變量? – Code123

+0

就我而言,這是一個數字。問題是,你需要告訴編譯器這個數字是一個Double(而不是一個整數),所以你在之後添加'd'來消除該類型的歧義。試試我的例子,它會打印101.我沒有嘗試,但我相信你也可以嘗試 –

0

基於有機磷農藥回答我剛纔的評論,問題是變量totalgradeaverage不聲明並初始化它們用於初始化數組Double[] program之前。

爲了解決這個問題,所有你需要做的就是聲明和使用它們,這樣前初始化變量:

// Initialize variables 
double total = 70.0; 
double grade = 10.0; 
double average = total/grade; 

// Initialize an array of size 3 containing the 3 doubles 
double[] program = {total, grade, average}; 

請注意,我已經聲明使用原始數據類型的所有變量(駝峯/小寫)而不是它們的Object表示(PascalCase /大寫)。當您的不需要要求變量的值爲null的能力時,這是首選。

+0

由於[自動(非)拳擊,你甚至可以寫'Double [] program = {total,grade,average} ](https://docs.oracle.com/javase/tutorial/java/data/autoboxing.html)。但無論如何,我認爲OP的問題更多的是對Java的基本理解。 – Turing85

+0

你是對的,我編輯了我的答案,以澄清爲什麼我使用原始數據類型。 – Nicklas