Zweidimensionales Array

123michi19

Lt. Junior Grade
Registriert
Okt. 2014
Beiträge
316
Hey Leute,

ich habe soeben den folgenden Code geschrieben (Sinn davon soll einfach sein, dass 2 zweidimensionale Arrays miteinander addiert werden. Allerdings bekomme ich in der Ausgabe immer 0 als Ergebnis.

Code:
/*MehrdimArray.java*/
public class MehrdimArray
{
	public static void main (String[]args)
	{
		int [][] test = new int [2][5]; // 2 Zeilen und 3 Spalten
		/* 2 Zeilen und 5 Spalten
		1 2 3 4 5
		6 7 8 9 10
		*/
		System.out.println (test [1][1] + test [1][3]);
		
	}
}

Könntet ihr mir bitte sagen woran das liegt, dass immer 0 ausgegeben wird?

Vielen Dank :-)
 
Bin ich blöd oder ist in deinem Array jeweils nichts drin?
 
Oh mann, das ist mir garnicht aufgefallen, dass da überhaupt nichts drin ist (Typisch Erstsemester). Vielen Dank für Eure Antworten :-)
Ergänzung ()

Noch eine Zusatzfrage:

Warum gibt das Programm mir jetzt 66 als Ergebnis aus?

Code:
/*MehrdimArray.java*/
public class MehrdimArray
{
	public static void main (String[]args)
	{
		int [][] test = {{2,3,4},{5,6,7}}; // 2 Zeilen und 3 Spalten
		System.out.println ("Der Wert betraegt " + test [1][1] + test [1][1]);
		
	}
}
 
Weil an Stelle 1,1 eine 6 steht und die beiden Integers automatisch in einen String konvertiert werden, wenn du sie zu einem String "addierst". Der einfachste Weg ist vermutlich die Addition nochmal zu klammern. Bin aber kein Java Experte.

Code:
System.out.println ("Der Wert betraegt " + (test [1][1] + test [1][1]));
 
Vielen Dank, das mit dem Klammern funktioniert :-)

Allerdings habe ich bei den mehrdimensionalen Arrays einen Denkfehler:

{{2,3,4},{5,6,7}}

Wenn ich das in meinem Code jetzt habe, lese ich das dann nicht so, dass ich 3 Zeilen und 3 Spalten habe?
 
Du hast in deinem Array zuerst ein Array mit 2,3,4 und an zweiter Stelle (Index = 1) ein Array mit 5,6,7
Dein Array hat also 2 Zeilen und 3 Spalten (oder 3 Zeilen und 2 Spalten, kannst du interpretieren wie du willst).

Ich schreib sowas immer so:
Code:
{{2,3,4},
 {5,6,7}}

Dann ist das ganze visuell etwas deutlicher (z.B. interpretiert als Matrix mit zwei Zeilen und drei Spalten)
 
Ich weiß nicht, ob Java dafür eine Möglichkeit bietet (ist bei mir >10 Jahre her), aber in PHP würdest du solche Probleme mit einem einfachen print_r($array); oder, noch besser, var_dump($array); sehen.
 
Arrays.toString(myArray);
wäre in Java die Lösung (Arrays.deepToString(myMultiDimArray) für mehrdimensionale Arrays).
Alternativ geht das auch klassisch über ne for-Schleife (bzw. mehrere for-Schleifen bei mehreren Dimensionen)
 
Zurück
Oben