Verschachtelte For Schleifen

Beginner2510

Mitglied
Hallo, also ich weiß schon mal, dass bei einer verschachtelung von For-Schleifen, die äußere Schleife erst einmal einen Durchgang macht bis die innere Schleife false liefert. Nur wie sieht es mit mehreren For Schleifen aus. Ich verstehe nicht genau wie die Schleifen abgerarbeitet werden.

Bsp:

for (stern = 0; stern < 10; stern++) {
for (dreieck = 0; dreieck < 10; dreieck++) {
for (raute = 0; raute < 10; raute++) {
int zahl1 = stern * 100 + dreieck * 10 + raute;

for (unendlich = 0; unendlich < 10; unendlich++) {
for (dreieckAndersherum = 0; dreieckAndersherum < 10; dreieckAndersherum++) {
int zahl2 = unendlich * 100 + dreieck * 10 + dreieckAndersherum;

for (quadrat = 0; quadrat < 10; quadrat++) {
int zahl3 = dreieckAndersherum * 100 + quadrat * 10 + quadrat;

if (zahl1 + zahl2 == zahl3)
 

httpdigest

Top Contributor
Versuche einmal, das ganze zu abstrahieren, also nicht zu versuchen, zwei Schleifen zu verstehen und dann drei Schleifen und dann vier usw., sondern es reicht lediglich, wenn du eine Schleife verstehst:
Java:
for (...) {
  statement
}
In dem obigen Code wird `statement` für jede Iteration der for-Schleife ausgeführt. Wenn jetzt `statement` wieder eine for-Schleife ist bzw. beinhaltet, dann wird halt diese Schleife als ein Statement ausgeführt. Und du weißt ja, wann die Ausführung einer for-Schleife beendet ist, nämlich genau dann, wenn die Bedingung der Schleife `false` liefert.
Diese Regel kannst du dann für beliebig verschachtelte Schleifen anwenden.
Also: eine Schleife kann erst eine weitere Iteration durchführen, wenn ihr Schleifenrumpf vollständig ausgeführt wurde (und nicht mit anderen Statements "abgebrochen" wurde).
 

Beginner2510

Mitglied
Also ich verstehe das jetzt so, dass wenn die erste Schleife +1 hoch zählt, dann erstemal die if-Abfrage (zahl1+zahl2==zahl3) kommt ?
Oder muss ich dann eher von innen nach außen gehen?
 
Zuletzt bearbeitet:

httpdigest

Top Contributor
Lese den Code einfach von oben nach unten.
Java:
1. for (...) {
2.   for (...) {
3.     for (...) {
4.       ...
5.     }
6.   }
7. }
Zuerst wird bei 1. die äußerste for-Schleife ausgeführt. Das führt dazu, dass sie erstmal ihre Bedingung auswertet, die - hier mal angenommen - true liefert. Das bedeutet, die äußere Schleife möchte in dieser ersten Iteration ihren Rumpf ausführen. Was in dem Rumpf genau drinsteht, ist völlig egal. Das kann eine weitere for-Schleife sein oder irgendwas anderes. Im obigen Beispiel ist es einfach eine weitere for-Schleife. Das heißt, der Rumpf der äußersten Schleife wird nun bei 2. ausgeführt. Wir befinden uns ja immernoch in der Ausführung der ersten Iteration der äußersten (1.) Schleife. Nun möchte die Schleife bei 2. ausführt werden. Was macht sie also? Sie wertet ihre Bedingung aus, die (hier mal) wieder true ist und nun möchte sie ihrerseits ihren Rumpf ausführen. Es ist wiederum völlig egal, was der Rumpf ist. In diesem Beispiel ist es wieder eine for-Schleife, die nach denselben Regeln wie vorher ausgewertet und ausgeführt wird. Wir sind also bei 3., aber eben immer noch in der ersten Iteration der äußersten 1. Schleife und in der ersten Iteration der 2. Schleife. Nun wird halt noch die Schleife bei 3. ausgeführt. Und so weiter und so fort.
 

White_Fox

Top Contributor
Versuche mal, die innere(n) Schleife(n) in eine Methode auszulagern. Das:

Java:
//Start here:
public void static main(String args[]){
    for(int i = 0; i < 10; i++){
        //...
        performAnotherFor();
        //...
    }
}

void performAnotherFor(){
    for(int i = 0; i < 10; i++){
        //...
        performAThirdFor();
        //...
    }
}

void performAThirdFor(){
    for(int i = 0; i < 10; i++){
        //...
    }
}

ist exakt das Gleiche wie:
Java:
//Start here:

public void static main(String args[]){
    for(int i = 0; i < 10; i++){
        //...
        for(int j = 0; j < 10; j++){    //performAnotherFor
            //...
            for(int k = 0; k < 10; k++){    //performAThirdFor
                //...
            }
            //...
        }
        //...
    }
}
 

Beginner2510

Mitglied
for (stern = 0; stern < 10; stern++) { <- Dann wird hier +1 gezählt
for (dreieck = 0; dreieck < 10; dreieck++) { <- Hier auch
for (raute = 0; raute < 10; raute++) { <- Hier auch ... usw
int zahl1 = stern * 100 + dreieck * 10 + raute;

for (unendlich = 0; unendlich < 10; unendlich++) {
for (dreieckAndersherum = 0; dreieckAndersherum < 10; dreieckAndersherum++) {
int zahl2 = unendlich * 100 + dreieck * 10 + dreieckAndersherum;

for (quadrat = 0; quadrat < 10; quadrat++) { <- aber hier wird dann so lange
int zahl3 = dreieckAndersherum * 100 + quadrat * 10 + quadrat; gezählt bis die Schleife False anzeigt. Dann zählt die schleife darüber so lange bis die Schleife False anzeigt usw.

if (zahl1 + zahl2 == zahl3)




Oder ?
 

temi

Top Contributor

Die zweite Hälfte der Schleifen fehlt jeweils, aber du hast da sechs verschachtelte Schleifen, von denen die Innerste (quadrad..) zuerst komplett abgearbeitet wird. Danach folgt die nächst höhere (dreieckAndersrum..), wobei bei jedem Durchlauf auch immer die Innerste erneut abgearbeitet wird, usw.

Die innere Schleife wird also ziemlich oft bearbeitet, weil ja noch die anderen fünf Schleifen dazukommen.

Die Schleife "stern" ruft 10 mal die Schleife "dreieck" auf.
Die Schleife "dreieck" ruft 10 mal die Schleife "raute" auf: "raute" wird 10 x 10 mal abgearbeitet.
Die Schleife "raute" ruft 10 mal die Schleife "unendlich" auf: "unendlich" wird 10 x 10 x 10 mal abgearbeitet.
usw.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D verschachtelte Schleifen Java Basics - Anfänger-Themen 6
H Best Practice Wie mit break verschachtelte Schleifen komplett verlassen? Java Basics - Anfänger-Themen 2
F Verschachtelte Schleifen Java Basics - Anfänger-Themen 4
J Hilfe verschachtelte Schleifen Java Basics - Anfänger-Themen 5
J verschachtelte for-schleifen Java Basics - Anfänger-Themen 2
C Verschachtelte for-schleifen Java Basics - Anfänger-Themen 10
C Verschachtelte For-Schleifen Java Basics - Anfänger-Themen 5
P Verschachtelte For-Schleifen Java Basics - Anfänger-Themen 4
J Verschachtelte for schleife mit dynamischer Anzahl an Schleifen Java Basics - Anfänger-Themen 10
M Viele verschachtelte Schleifen Java Basics - Anfänger-Themen 14
S verschachtelte while Schleifen Java Basics - Anfänger-Themen 5
S Verschachtelte for-Schleife Java Basics - Anfänger-Themen 2
laxla123 Verschachtelte If-Else Schleife Java Basics - Anfänger-Themen 21
W Verschachtelte If-else --> finde meinen Fehler nicht Java Basics - Anfänger-Themen 30
Düsseldorf2002 Datentypen Verschachtelte LinkedList Java Basics - Anfänger-Themen 5
J Verschachtelte Methoden Java Basics - Anfänger-Themen 9
P Verschachtelte Hashmap Java Basics - Anfänger-Themen 6
P Verschachtelte Array Liste Java Basics - Anfänger-Themen 2
W Verschachtelte Objekte wieder auspacken Java Basics - Anfänger-Themen 3
S Verschachtelte Schleife Java Basics - Anfänger-Themen 3
F Methoden Verschachtelte if else Methode Java Basics - Anfänger-Themen 10
Z Verschachtelte If-Bedingung Java Basics - Anfänger-Themen 6
Y Verschachtelte For-Schleife Java Basics - Anfänger-Themen 5
M Verschachtelte Forschleifen Java Basics - Anfänger-Themen 2
F Klassen Zugriff auf verschachtelte Objekte Java Basics - Anfänger-Themen 11
J static verschachtelte Klassen und innere Klassen Java Basics - Anfänger-Themen 1
TheMenox Verschachtelte If Bedingung Java Basics - Anfänger-Themen 4
R Verschachtelte Arraylist und deren Größe auslesen Java Basics - Anfänger-Themen 7
C Verschachtelte Map auslesen Java Basics - Anfänger-Themen 4
F Erste Schritte Switch case vs. Verschachtelte If Anweisung Java Basics - Anfänger-Themen 11
G Collections verschachtelte ArrayList abfüllen Java Basics - Anfänger-Themen 5
X verschachtelte suche Java Basics - Anfänger-Themen 8
S Verschachtelte Exceptions - Übersicht verbessern Java Basics - Anfänger-Themen 2
D Verschachtelte Objekterzeugung Java Basics - Anfänger-Themen 6
S verschachtelte for-Schleife Java Basics - Anfänger-Themen 6
X Verschachtelte Annotationen Java Basics - Anfänger-Themen 9
J verschachtelte Schleife Java Basics - Anfänger-Themen 10
P Verschachtelte Schleife vorzeitig abbrechen. Java Basics - Anfänger-Themen 50
S verschachtelte for Schleife und Ergebniss. Java Basics - Anfänger-Themen 3
S Verschachtelte Klassen Java Basics - Anfänger-Themen 12
D Verschachtelte IF-Anweisung Java Basics - Anfänger-Themen 10
3 Verschachtelte Zuweisung Java Basics - Anfänger-Themen 4
M Tief verschachtelte Packages Java Basics - Anfänger-Themen 7
T add-Methode für verschachtelte ArrayLists Java Basics - Anfänger-Themen 10
C Verschachtelte For-Schleife Java Basics - Anfänger-Themen 6
E Verschachtelte If-Anweisungen - "else without if" Java Basics - Anfänger-Themen 4
T Datentypen Verschachtelte Map durchlaufen Java Basics - Anfänger-Themen 4
F Verschachtelte Arrays kopieren und überschreiben Java Basics - Anfänger-Themen 4
M Verschachtelte Strukturen. Java Basics - Anfänger-Themen 7
J Verschachtelte for-Schleife mit Löschen von Iterationen. Wie über Iterator abbilden? Java Basics - Anfänger-Themen 6
A Verschachtelte Hashtable ausgeben. Java Basics - Anfänger-Themen 3
W verschachtelte while schleife Java Basics - Anfänger-Themen 8
G Verschachtelte Case Fallunterscheidung Java Basics - Anfänger-Themen 7
W verschachtelte For-Schleife - continue Java Basics - Anfänger-Themen 8
R Verschachtelte Schleife? Java Basics - Anfänger-Themen 6
M sehr weit verschachtelte XML-datei mit jdom auslesen Java Basics - Anfänger-Themen 4
R Bedingte Opeatoren / Verschachtelte Operatoren Java Basics - Anfänger-Themen 4
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
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
H Schleifen (anfänger) Java Basics - Anfänger-Themen 13
C Variablen in Schleifen außerhalb verwenden Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben