OOP Arraybefüllung mit for-Schleifen Problem: Umsprung in die zweite Zeile

acky

Mitglied
Also das ist mein erster Beitrag :) Ich entschuldige mich falls ich die falsche Kategorie getroffen haben sollte. Und freu mich auf eure Hilfe.

Die Aufgabenstellung ist folgende: Ein zweidimensionales Array soll erschaffen werden und mit for-Schleifen mit StdInput.readInt befüllt werden.

Die erste for-Schleife befüllt das Array. Die Nachfolgende if-Schleife soll den "horizentallen" Zähler (i) wieder zurücksetzen das die zweite Zeile ab dem Index 0 befüllt wird.

Mein Problem ist folgendes: Wie mache ich dem Programm klar das es in die zweite Zeile des Arrays springen soll ?



Java:
public class Uebung5_3 {

	public static void main (String[] args) {


			int [][] Matrix = new int [3][2];

				int z = 0;
				for (int i=0; i < Matrix.length; i++){

					Matrix[i][z] = StdInput.readInt("Geben sie ");

					
					System.out.println(Matrix[i][z]);


					if (i == 2) {
						i = 0;
						

						for (i=0; i < Matrix.length; i++) {

							Matrix[i][z] = StdInput.readInt("Geben sie ");
							
							z = z++;
							System.out.println(Matrix[i][z]);


						}

					}

				}
                   }

	}

Mit freundlich Grüßen und bestem Dank
acky
 
Zuletzt bearbeitet:

Network

Top Contributor
Zuletzt bearbeitet:
S

SlaterB

Gast
> z = z++;

unbedingt vermeiden, z++; ändert z, aber ob nun der alte oder neue Wert davon übernommen wird?..
teste mal
x = x++;
und
x = ++x;
irgendwas davon wird nicht gut funktionieren,

viel besser:
entweder
z++;
oder
z = z + 1 bzw. als Abkürzung z += 1

alles drei ohne Interpretationsspielraum 'z um 1 erhöhen'

----

die Aufgabe verstehe ich auch nicht ganz, sind 'wieder zurücksetzen das die zweite Zeile ab' deine Worte oder Aufgabentext?!

in jedem Fall müssen Zeile 21 bis 29 wieder raus, die Schleife garantiert nicht wiederholen sondern die erste weiter laufen lassen,
nur eben mit richtigem i und z, so dass es passt, z.B. z nach 1 immer wieder auf 0 setzten, i so dass jedes i zweimal drankommt (für beide z)
 

acky

Mitglied
Java:
public class Uebung5_3 {

	public static void main (String[] args) {


			int [][] Matrix = new int [3][2];

				int z = 0;
				for (int i=0; i < Matrix.length; i++){

					Matrix[i][z] = StdInput.readInt("Geben sie ");

					


					if (i == 2) {
						i = 0;
						
						z = 1;

						for (i=0; i < Matrix.length; i++) {

							Matrix[i][z] = StdInput.readInt("Geben sie ");
							
							z = z++;
							


						}

					}

				}


						z = 0;


						for (int i=0; i < Matrix.length; i++){

							System.out.print(Matrix[i][z]);
							z = z++; }
							System.out.println("");
						z = 1;


						for (int i=0; i < Matrix.length; i++){

						System.out.print(Matrix[i][z]);
						z = z++;
						}



						System.out.println("");



	   }


	}

Also das war jetzt meine Lösung. Ich les mir deinen Beitrag jetzt mal durch und dann poste ich nochmal was :)
 

Network

Top Contributor
SlaterB hat recht

bei z = z++ pasiert folgendes:
- Neue Variable z wird erzeugt und ihr wir der Wert aus der Variable z zugeordnet (Gleicher Name != GleicheVariable/Objekt)
- Danach wird die alte Variable um 1 erhöht

bei z = ++z
- Variable z wird um eins erhöht
- Neue Variable z wird erzeugt und ihr der Wert aus der alten zugeordnet

bei nur "z++" oder "++z"
- Variable wird um eins erhöht
 

acky

Mitglied
Was auch immer mich beim eröffnen des Themas gerade für ein Bock geritten hat. Man sollte wohl nicht seinen ersten Beitrag verfassen wenn man gerade seine 5 Minuten hat.

Aufgabe(kopiert): Definieren Sie eine 2 x 3 Matrix (zweidimensionales Array) und initialisieren Sie
diese Matrix mit Hilfe von for-Schleifen mit sinnvollen Werten. Holen Sie die Werte mit StdInput.readInt("Ihr Wert:") vom Standard-Input.

Falls es jmd. interessiert
Java:
public class Uebung5_3 {

	public static void main (String[] args) {


			int [][] Matrix = new int [2][3];

			int i = 0;
			int z;

			for (z = 0; z <= Matrix.length; z++) {

				Matrix[i][z] = StdInput.readInt("aGeben sie");

					if ( z == 2) {

						i = 1;


							for (z = 0; z <= Matrix.length; z++) {

								Matrix[i][z] = StdInput.readInt("bGeben sie");

							}

					}


			}



					i = 0;


					for (z = 0; z <= Matrix.length; z++) {

						System.out.print(Matrix[i][z]+" ");

							if ( z == 2) {
								System.out.println("");
								i = 1;

									for (z = 0; z <= Matrix.length; z++) {

										System.out.print(Matrix[i][z]+" ");



					}

							}

									}
										System.out.println("");

	}




}

Jemand noch eine Anmerkung ?

Mit bestem Dank

acky
 

Network

Top Contributor
Ja eine Anmerkung =D Warum wird "<=" in den for-Schleifen verwendet?

Am Schluss liest oder schreibt(oder was auch immer) man eine position über dem Array weiter! Wie richtig erwähnt wurde fängt der Index bei 0 an, also hört er auch bei "1 vor der Anzahl der Einträge" auf.
 
Zuletzt bearbeitet:

tagedieb

Top Contributor
acky hat gesagt.:
Die Aufgabenstellung ist folgende: Ein zweidimensionales Array soll erschaffen werden und mit for-Schleifen mit StdInput.readInt befüllt werden.

:eek: Also wenn das die Aufgabenstellung ist hast du das Ziel der Uebung gruendlich verfehlt. Dein Code funktioniert zwar aber die Logik ist komplett falsch und deine Loesung endet als Studienobjekt unter dem Titel 'Finde die 10 Fehler'. Versuch mal die Groesse deines Arrays abzuaendern, der Code wird zweifellos fehlschlagen.


Ein zweidimensionales Array initialisiert man mit 2 simplen verschachtelten for-Schleifen.

Java:
		int[][] matrix = new int[3][2];

		for (int i = 0; i < matrix.length; i++) {
			for (int j = 0; j < matrix[i].length; j++) {
				matrix[i][j] = StdInput.readInt("Geben sie ");
			}
		}
 

acky

Mitglied
Irgendwann hab ich auch mal rausbekommen das Matrix.length bei einer Matrix die Zeilen zählt und nicht die spalten. Jetzt scheint es mir richtig zu sein.

Die Lösung von meinem Vorredner ist natürlich sehr elegant.

Java:
public class Uebung5_3 {

	public static void main (String[] args) {


			int [][] Matrix = new int [2][3];

			int x = 0;
			int y = 0;
			int a = 0;
		   /*************************************************************************************************
			*																								*
			*	Aufgabe: Initialisierung eines Array mit 2 Zeilen und 3 Spalten. Befüllung					*
			*	und Ausgabe mit Hilfe jeweils einer for-Schleife.											*
			*																								*
            *		|	X0	|	X1	|	X2	|		<--- Zeilenvariablen (mit Index)						*
            *	-----------------------------																*
            *		|1		|3		|5		|																*
            *	Y0	|	1	|	3	|	5	|																*
            *	----|-------|-------|-------|																*
            *		|2		|4		|6		|																*
            *	Y1	|	2	|	4	|	6	|																*
            *	----|-------|-------|-------|																*
            *																								*
            *																								*
            *	 ^		- Zahlen oben rechts im Arrayfeld (Eingabereinfolge)								*
            *	/ \		- Zahlen in der Mitte des Feldes eingegeben Bsp. Zahlen								*
            *	 |																							*
            *	 |																							*
            *	 |																							*
            *																								*
            *	 Spaltenvariablen (mit Index)																*
            *																								*
            *	 Das Array wird anders beschrieben als ausgelesen. Befüllt wird es wie oben in der			*
            *	 Skizze angegeben. 																			*
            *				 																				*
            *	 ERSTER BLOCK																				*
            *			 																					*
            *	 Jeweils eine for-Schleife beschreibt eine Spalte. Sobald Y = 1								*
            *	 geworden ist wird in der if-Abfrage der Index von X um 1  erhöht.							*
            *	 Nun wird wieder eine for schleife mit einer if ab-Abfrage kombiniert 						*
            *	 um die 2 Spalte, mit dem Index 1, zu beschreiben usw.										*
            *		 																						*
            *				 																				*
            *	 ZWEITER BLOCK																				*
            *			 																					*
            *	 Ausgelesen wird das Array zeilenweise zwecks Ausgabe (Zeilenumbruch).						*
            *	 Also werden nur 2 for-if Kombinatonen gebraucht. Am Ende der ersten 						*
            *	 Kombo wird Y um 1 erhöht. 																	*
            *				 																				*
            *				 																				*
            *				 																				*
            *				 																				*
            *				 																				*
            *				 																				*
            *				 																				*
			*************************************************************************************************/




			/////////////////////
			/// ERSTER  BLOCK ///
			/////////////////////



			for (y = 0; a == 0; y++) {

				Matrix[y][x] = StdInput.readInt("Geben sie ihre Zahl (index -> x = "+x+ " // y = " +y+ " //");

					if (y == 1) {


						x = 1;

							for (y = 0; a == 0; y++) {

								Matrix[y][x] = StdInput.readInt("Geben sie ihre Zahl (index -> x = "+x+ " // y = " +y+ " //");

									if (y == 1) {


										x = 2;

											for (y = 0; a == 0; y++) {

												Matrix[y][x] = StdInput.readInt("Geben sie ihre Zahl (index -> x = "+x+ " // y = " +y+ " //");

													if (y == 1) {

														a = 1;

														}

											}

									}

							}

					}


			}

			/////////////////////
			/// ZWEITER BLOCK ///
			/////////////////////

			x = 0;
			y = 0;
			a = 0;
			System.out.print("| ");												// Nur Darstellung


			for (x = 0; a == 0; x++) {

				System.out.print(Matrix[y][x]+"| ");							// Darstellung -> "| "

					if (x == 2) {

						y = 1;



						System.out.println("");									// Nur Darstellung
						System.out.print("| ");									// Nur Darstellung

							for (x = 0; a == 0; x++) {

								System.out.print(Matrix[y][x]+"| ");			// Darstellung -> "| "

									if (x == 2) {

										a = 1;

									}

							}

					}

			}


	}




}
 
Zuletzt bearbeitet:

Painii

Bekanntes Mitglied
Wenn dein Array grösser wird funktioniert deine Lösung nicht (Du müsstest immer wieder einen neuen if-block einbauen, mit neuer Schleife...).

Generell, wenn du sehr oft den gleichen Code hintereinanderschreibst (Hier deine Schleifen), dann schau genau hin ob das nicht einfacher geht -> das x kannst du in einer 2. Schleife hochzählen (wie von tagedieb gezeigt).

Und ob zuerst Spalten oder zuerst Zeilen befüllt werden ist Ansichtssache.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T schleifen Java Basics - Anfänger-Themen 3
Kingdako Wie löse ich eine Mathematische Formel mit Arrays und Schleifen? Java Basics - Anfänger-Themen 32
S Erste Schritte While Schleifen Java Basics - Anfänger-Themen 11
M geschachtelte for-Schleifen - Einmaleins ausgeben Java Basics - Anfänger-Themen 3
Mikejr Schleifen Java Basics - Anfänger-Themen 4
java-starter Erste Schritte Mit While Schleifen Programme schreiben Java Basics - Anfänger-Themen 4
K geschachtelte "for-Schleifen" Java Basics - Anfänger-Themen 3
Alen123 Potenzen in Schleifen Java Basics - Anfänger-Themen 26
Alen123 String wiederholen mit Schleifen Java Basics - Anfänger-Themen 1
A Schleifen und Boolsche Ausdrücke Java Basics - Anfänger-Themen 42
W Schleifen Java Basics - Anfänger-Themen 36
S Interaktive Abfrage, Hilfe mit Schleifen! Java Basics - Anfänger-Themen 6
Mojtaba1986 Hausaufgabe (Schleifen) Java Basics - Anfänger-Themen 33
A Schleifen Verzweigungen Java Basics - Anfänger-Themen 18
C Sind die while-Schleifen richtig in for-Schleifen ersetzt worden? Java Basics - Anfänger-Themen 8
D Schleifen Problem Java Basics - Anfänger-Themen 2
H Muster mit verschachtelten Schleifen kreieren. Java Basics - Anfänger-Themen 2
A Schleifen in Java Java Basics - Anfänger-Themen 4
A Schleifen, Hilfe! Java Basics - Anfänger-Themen 6
C Schleifen Durchlauf Java Basics - Anfänger-Themen 7
M While-Schleifen-Fehler Java Basics - Anfänger-Themen 4
J Schleifen Wiederholendes Zeichenmuster Java Basics - Anfänger-Themen 4
K For-Schleifen Ablauf Java Basics - Anfänger-Themen 5
L Anzahl der Aufrufe von Schleifen bestimmen Java Basics - Anfänger-Themen 1
S Hilfe bei Java Aufgabe (Schleifen) Java Basics - Anfänger-Themen 25
B Verschachtelte For Schleifen Java Basics - Anfänger-Themen 8
G Input/Output Schleifen Durchlauf Java Basics - Anfänger-Themen 5
A Erste Schritte Schleifen Java Basics - Anfänger-Themen 5
J Muster und Schleifen Java Basics - Anfänger-Themen 33
H ERGÄNZUNGSFRAGE: Klammersetzung bei if-else Anweisungen und Schleifen Java Basics - Anfänger-Themen 2
scratchy1 Argumente mit verschiedenen Schleifen ausgeben Java Basics - Anfänger-Themen 3
C Schleifen Java Basics - Anfänger-Themen 12
E geschachtelte for-schleifen Java Basics - Anfänger-Themen 6
L Übungsaufgabe zu Schleifen Java Basics - Anfänger-Themen 7
W Erste Schritte Rechnen mit Schleifen? Denkanstoß gesucht Java Basics - Anfänger-Themen 15
A Erste Schritte for-Schleifen vereinfachen Java Basics - Anfänger-Themen 5
S Immer das selbe mit den Schleifen Java Basics - Anfänger-Themen 24
kokojamboo92 Schleifen und Arrays Java Basics - Anfänger-Themen 7
N Problem mit Schleifen Java Basics - Anfänger-Themen 20
O Array, geschachtelte For-Schleifen Java Basics - Anfänger-Themen 34
S While-Schleifen Ausgabe als String? Java Basics - Anfänger-Themen 1
R Threads Pause zwischen zwei Schleifen Java Basics - Anfänger-Themen 1
D verschachtelte Schleifen Java Basics - Anfänger-Themen 6
H Schleifen (anfänger) Java Basics - Anfänger-Themen 13
C Variablen in Schleifen außerhalb verwenden Java Basics - Anfänger-Themen 2
L Schachbrettnummerierung mit Schleifen.. Java Basics - Anfänger-Themen 3
H Schleifen Java Basics - Anfänger-Themen 8
L Zahlentripel und for-Schleifen Java Basics - Anfänger-Themen 2
T Spezielle Aufgabe zu Schleifen Java Basics - Anfänger-Themen 3
T Erste Schritte Schleifen-Stop Java Basics - Anfänger-Themen 14
kilopack15 Rekursion und Schleifen Java Basics - Anfänger-Themen 27
I Mehre While-Schleifen hintereinander Java Basics - Anfänger-Themen 13
P Terminieren diese Schleifen Java Basics - Anfänger-Themen 6
L Was heißt terminieren bei Schleifen? Java Basics - Anfänger-Themen 3
I Brauche Hilfe bei Schleifen Java Basics - Anfänger-Themen 18
C Erste Schritte While-Schleifen-Problem Java Basics - Anfänger-Themen 3
W Schleifen bei Greenfoot Java Basics - Anfänger-Themen 4
B Operatoren Stopp von Schleifen Java Basics - Anfänger-Themen 9
K Loop ohne Schleifen Java Basics - Anfänger-Themen 2
V Rechenzeichen bei Termen - Darstellung bei Schleifen Java Basics - Anfänger-Themen 7
E Muster auf der Konsole ausgeben lassen (Schleifen) Java Basics - Anfänger-Themen 7
C Erste Schritte Probleme bei Aufgaben zu Schleifen Java Basics - Anfänger-Themen 11
F OOP Schleifen und Probleme mit Setter und Getter Java Basics - Anfänger-Themen 1
L Blöcke bei verschachtelten Schleifen Java Basics - Anfänger-Themen 3
L Kurze Frage zu verschachtelten Schleifen Java Basics - Anfänger-Themen 3
E Erste Schritte Sternchenpyramide mit For-Schleifen erstellen Java Basics - Anfänger-Themen 9
H Best Practice Wie mit break verschachtelte Schleifen komplett verlassen? Java Basics - Anfänger-Themen 2
arti28 Erste Schritte For-Schleifen und While-Schleifen, String als Muster ausgeben. Java Basics - Anfänger-Themen 3
T [Schleifen] Schleifenproblem Java Basics - Anfänger-Themen 4
F Verschachtelte Schleifen Java Basics - Anfänger-Themen 4
J Hilfe verschachtelte Schleifen Java Basics - Anfänger-Themen 5
O Geschachtelte For-Schleifen Java Basics - Anfänger-Themen 1
D Zeichnen, Schleifen Java Basics - Anfänger-Themen 7
S Zeichnen , Schleifen Java Basics - Anfänger-Themen 4
L Schleifen und Array, nur letzte Eingabe wird ausgegeben Java Basics - Anfänger-Themen 3
Z Frage zu for-Schleifen Java Basics - Anfänger-Themen 5
M Wie kann ich eine Ausgabe vervielfachen? (Schleifen) Java Basics - Anfänger-Themen 4
Z Schleifen Beispiel: Fakultät Java Basics - Anfänger-Themen 26
T Erneute Frage zu Schleifen Java Basics - Anfänger-Themen 4
V Schleifen die nicht voneinander abhängen! (für CAN-BUS) Java Basics - Anfänger-Themen 10
T Anfängerfrage zu Schleifen und Arrays Java Basics - Anfänger-Themen 5
S for-Schleifen Problem Java Basics - Anfänger-Themen 4
W Methoden While Schleifen Ergebnis im String speichern Java Basics - Anfänger-Themen 5
F Erste Schritte Hilfe bei Übung zu String equals() und Schleifen Java Basics - Anfänger-Themen 8
J Anzahl von for-Schleifen in Abhängigkeit von Zahleneingabe erzeugen Java Basics - Anfänger-Themen 1
X Methoden Logik-Problem mit Schleifen. Java Basics - Anfänger-Themen 7
J MouseListener für Schleifen-Objekte Java Basics - Anfänger-Themen 13
W Aufgabe mit Schleifen Java Basics - Anfänger-Themen 8
M Sektkelch mit Schleifen Java Basics - Anfänger-Themen 9
F Methoden JTable + 2 For-Schleifen Java Basics - Anfänger-Themen 4
I Listen, for - Schleifen Java Basics - Anfänger-Themen 8
N Schleifen Problem Java Basics - Anfänger-Themen 3
L Histogram mittels Schleifen und Arrays Java Basics - Anfänger-Themen 9
A Ausgabe von Schleifen nebeneinander? Java Basics - Anfänger-Themen 3
T durchlaufene while-Schleifen zählen Java Basics - Anfänger-Themen 3
L schleifen fehler Java Basics - Anfänger-Themen 12
X Array Ausgabe bei Verwendung von 2 Schleifen erklären Java Basics - Anfänger-Themen 8
K Schleifen und Exceptions Java Basics - Anfänger-Themen 8
J Schachbrett mit Hilfe von while-Schleifen Java Basics - Anfänger-Themen 10
F Nach Beendigung aller Schleifen von vorn anfangen, Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben