2017-11-22 4 views
0

Okay, ich arbeite immer noch an einem Matrix-Projekt für meine APCS-Klasse, und ich versuche gerade herauszufinden, wie man den Benutzer dazu bringt, alle Zahlen für die Matrix einzugeben. Im Moment habe ich eine setNums Klasse, die die Zeilen und Spalten bereits eingegeben verwendet eine Reihe von inputboxes zu werfen und gibt dann diese Zahlen in einem 2-dimensionalen Array wie folgt:Kann Doppel in Double [] [] Fehler in Java konvertieren?

public void setNums(String Matrixnum){ 
    for (int i = 1; i <= myRows; i++){ 
     for(int j = 1; j <= myColumns; j++){ 
      String StrNum = JOptionPane.showInputDialog(null, Matrixnum + " Row " + i + " Column " + j + " enter number:"); 
      myNums[i][j] = Double.parseDouble(StrNum); 
     } 
    } 
} 

ich dann eine getNums Klasse haben das sollte gehen durch das Feld und bringt sie eins nach dem anderen, wenn ich die Zahlen müssen später zum Addieren, Subtrahieren und Multiplizieren der Matrizen:

public double[][] getNums(){ 
    for(int i = 1; i <= myRows; i++) { 
     for(int j = 1; j <= myColumns; j++) { 
      return myNums[i][j]; 
     } 
    } 
} 

Das Problem ist, dass wenn ich versuche, myNums zurückzukehren, sagt er „nicht Konvertieren von Double zu Double [] [] "Ich verstehe nicht, warum der Code denkt, es ist ein Double und kein Double [] []. Ich initialisiert es richtig:

private double[][] myNums; 

... und ich sicher, dass mein parseDouble den Array wurde ausgibt, die das Problem in einem ähnlichen Thread war ich gefunden. Dies ist das erste Mal, dass ich mit zweidimensionalen Arrays arbeite, also wette ich, dass es hier etwas Einfaches gibt, das ich nicht verstehe. Jede Hilfe wird sehr geschätzt. Vielen Dank!

+1

Sie versuchen, eine 'double' zurückzukehren, wie Sie ein Element Ihrer' double [] [] '' – BadMiscuit

+0

public double [] [] getNums zurückkehren() {'Wenn Sie eine einzelne Zahl zurückgeben, sollte der Rückgabetyp kein Array sein:' public double getNums() {' – markspace

+1

Anstatt zu versuchen, ein einzelnes Element Ihres Arrays zurückzugeben, müssen Sie das gesamte Array zurückgeben. Entfernen Sie also die 2 for-Schleifen und geben Sie 'return myNums;' zurück – JKostikiadis

Antwort

0

Der Compiler gibt diesen Fehler zurück Cannot convert double into double[][]

weil Ihr statt Ihrer Doppel Array einzelne doppelte Anzahl tatsächlich zurückkehren double[][], die Sie als Rückgabetyp Ihrer Methode definiert getNums()

Stattdessen können Sie das Problem beheben, indem Rückkehr nur myNums Array:

public double[][] getNums(){ 
     return myNums; 
} 

Sie können auch eine andere Methode deklarieren, wenn Sie von einer bestimmten Nummer bekommen möchten, dass Ihre Array von Array-Indizes mit i und j:

public double getNumber(int i, int j){ 
     return myNums[i][j]; 
} 
Verwandte Themen