Methoden Methode in main-Methode ausführen

el0r

Neues Mitglied
Hallo erstmal!
Im Rahmen meiner Java Vorlesung muss ich eine Übung bearbeiten, welche eine Matrix nach Benutzer eingabe erstellt. Soweit habe ich das auch geschafft.
Java:
public static double[][] createMatrix()
    {
        System.out.println("Festelgeung der Dimensionen/n");
        System.out.print("Breite der Matrix eingeben: ");
        int breite = In.readInt();
        System.out.print("Höhe der Matrix eingeben: ");
        int hoehe = In.readInt();
        double[][] m = new double[breite][hoehe];
        if (hoehe <= 1 || breite <= 1){
            System.out.println("Falsche Eingabe!");
            return null;
        }
        else {
            for(int i = 0; i < hoehe; ++i){
                for (int a = 0; a < breite; ++a){
                    System.out.print((a+1) + ". Wert in Zeile " + (i+1) + " eingeben: ");
                    m[a][i] = In.readDouble();
                }
            }
            return m;
        }
    }

Nun möchte ich aber eine Main Methode schreiben, welche die Matrix ausgibt. Doch mein Problem ist, dass er irgendwie die Matrix nicht "einlädt". Ich denke ich habe da noch einige Verständnisprobleme wie die Methoden ausgeführt werden.
Meine Frage ist jetzt, wie ich das hinbekomme, denn so klappt das nicht.
Java:
public static void main (String[] args)
    {
        createMatrix();
        for(int x = 0; x < m.length; ++x){
            for (int y = 0; y < m[x].length; ++y){
                System.out.print(m[x][y]);
            }
            System.out.println("");
        }
    }
Ich bekomme den Fehler, dass er "m" nicht findet. Wie bekomme ich das hin?
Danke!
 
Die Matrix m ist doch nur in deiner Funktion definiert, woher soll die main diese also kennen?

EDIT: Da deine Funktion ja bereits eine Matrix zurückgibt, brauchst du keine stat. Variable. Du musst in deiner main lediglich eine Variable definieren vom Typ double[][].
Also in der Art:
Java:
double[][] m = createMatrix();
 
du rufst createMatrix() auf die nen
Code:
double[][]
zurückgibt. Das Array musst du dir dann natürlich noch in ner Variablen merken. Ersetze die Zeile also mal mit folgendem:
Java:
double[][] m = createMatrix();

PS:
Genau das selbe machst du doch auch so in der createMatrix() Methode:
Java:
int breite = In.readInt();
In der main ists genau das gleiche 😉
 
Danke, genau das war das Problem.
Java:
double[][] m = createMatrix();
statt
Java:
createMatrix();
hat das Problem gelöst. Und ich hab die Sache jetzt verstanden 🙂
 

Zurück
Oben