Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Wirago

Alter Hase

Beiträge: 1 193

Wohnort: Stockerau

Beruf: CRM Application Manager

  • Private Nachricht senden

21

08.03.2014, 22:28

Weil du das Array vor der Eingabe definiert aber nach der Eingabe nicht ändert.

DeKugelschieber

Community-Fossil

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

22

09.03.2014, 00:43

[verlesen]

23

09.03.2014, 08:37

Hm...ich dachte, wenn ich die Variable "Felder" global (static) deklariere, könnte ich sie nachträglich noch ändern? In der Methode eingabe() ändere ich ja die Spalten-/Zeilenzahl und führe dann erst die Methode ausgabe() aus...

Wirago

Alter Hase

Beiträge: 1 193

Wohnort: Stockerau

Beruf: CRM Application Manager

  • Private Nachricht senden

24

09.03.2014, 09:51

Du änderst nur die Variablen a und b aber nicht das Array

25

09.03.2014, 11:07

Danke, habe es jetzt soweit erstmal hinbekommen. Allerdings würde ich die Ausgabe der Matrix gerne in eine separate Methode schreiben. Habe dazu auch schon etwas im Netz gefunden.

Mein Code:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package newpackage;

class Spielfeld {


static int zeile=10;
static int spalte=10;


static void eingabe(){ //Eingabe der Feldgröße
int a_test = new java.util.Scanner( System.in ).nextInt();
int b_test = new java.util.Scanner( System.in ).nextInt(); 
zeile = a_test;
spalte = b_test;

int[][] felder = new int[zeile][spalte]; // Definition der Feldgröße


for (int zeile = 0; zeile < felder.length; zeile++) { 
for (int spalte = 0; spalte < felder[zeile].length; spalte++) {
System.out.print(felder[zeile][spalte]);
}
System.out.println();
}
}

public static void main (String[] args){

eingabe();

}
}


Methode aus dem Internet:

Quellcode

1
2
3
4
5
6
7
8
9
10
[color=#7f0055]public void ausgeben(int[][] arrayName) 
{
for (int zeile = 0; zeile < arrayName.length; zeile++) {
System.out.print("Zeile " + zeile + ": "); 
for (int spalte = 0; spalte < arrayName[zeile].length; spalte++) {
System.out.print(arrayName[zeile][spalte]);
}
System.out.println();
}
}[/color]


Damit kann ich ja quasi für jedes beliebige Array die Ausgabe erzeugen. Wenn ich das allerdings bei mir versuche einzubinden, kann ich die Matrixvariable "felder" nicht in der Ausgabemethode nutzen... Die wird dann ja vermutlich eine lokale Variable der "eingabe()" sein nehme ich an. Kann ich das irgendwie umgehen?

Gruß

Fivo

DeKugelschieber

Community-Fossil

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

26

09.03.2014, 11:09

Schreib doch eine neue Methode für die Ausgabe.
Schau dir bitte die Grundlagen Schritt für Schritt an. Dann musst du solche Fragen nicht stellen, wir helfen gerne wenn es nicht überall nachzulesen ist.

Werbeanzeige