2015-02-11 424 views
1

我目前正在爲我的高中計算機科學類做一項任務,我遇到了一個問題,我得到的錯誤「double []不能轉換爲double」。然而,我很困惑,因爲我告訴一個特定的方法返回一個雙數組。無法將雙精度數組轉換爲數組

public static double [] getHits(int attempts) { 
    Random ranInt = new Random(); 
    int range = ranInt.nextInt(2) - 1; 

    double hits = 0; 
    double [] hitsInTrial = new double[attempts]; 
    double radius = 1; 
    double x = Math.pow(range, 2); 
    double y = Math.pow(range, 2); 

    for(int index = 0; index < attempts; index++) 
    { 
     if(!(x + y <= radius)) 
     { 
      hits++; 
     } 

     hitsInTrial[index] = hits; 
    } 

    return hitsInTrial; 
} 

^這個方法應該返回hitsInTrial的雙陣列(我覺得如果有些數據是錯誤的,但我擔心的是我得到了我的問題解決後)。

public static void main() 
{ 
    Scanner in = new Scanner(System.in); 

    System.out.print("How many darts/trials?: "); 
    int dartThrows = in.nextInt(); 

    double[] trials = new double[10]; 
    double[] hits = new double[dartThrows]; 

    for(int index = 0; index < trials.length; index++) 
    { 
     hits[index] = getHits(dartThrows); 
    } 
} 

我得到命中[index] = getsHits(dartThrows)中的錯誤;區。我很困惑,因爲方法getHits被告知返回一個雙精度數組,但我得到了「不能轉換」的錯誤。任何幫助將不勝感激,因爲作爲一個新手,我不太確定有什麼問題。

我省略了兩種方法,一種是使用數據計算pi,一種是打印結果。這些方法沒有產生錯誤,但如果我需要提供它們來幫助解答,請告訴我。

回答

6

getHits()方法返回double數組:double[]。而你的hits[]陣列是double[]型的,所以它的元素是double類型。您嘗試爲其分配double[]返回值。

1

hits = getHits(dartThrows);

您正在嘗試雙打的陣列分配到陣列中的雙重元素。

hits[a] // Represents a double element at index a not the array itself 
+0

雅我就是這麼做的 – Kode 2015-02-11 20:28:02

相關問題