break; mit Einfluss hinter else if Block

AshCatchem

Mitglied
Hallo zusammen,
der folgende Block gibt mir nur die erwarteten Ergebnisse aus, wenn ich die break; Anweisungen setze. Sobald auch nur eine fehlt, stimmen die Ergebnisse nicht mehr. Das ganze ist repruduzierbar. Wie kann das sein? Die break; Anweisungen haben doch durch die Formulierung des else-if keinen Einfluss auf den Schleifendurchlauf oder täusche ich mich da? Dass ich die dort nutze, war eigentlich nur ein Ergebnis der Verzweiflung und ein reiner Glückstreffer. Die Javainsel bringt mir auch keine Klarheit. Kann sich das jemand erklären?
Java:
for (int j = 0; j < array.size(); j++) {
                if (!bedingung1 || !bedingung2) {
                    if (bedingung3) {
                        foo();
                        break;
                     }    else if (bedingung4) {
                            foo2();
                            break;
                          }
                }
            }
 
Mit break wird die Schleife direkt beendet, egal ob das Abbruchkriterium der Schleife erfüllt ist, oder nicht. Mit der if-Abfrage hat das nichts zu tun.
 
Hallo, Robat. Ich hab jetzt verstaden, warum meine Glückslösung funktioniert. Ich hab break so verstanden, dass es nur den aktuellen Schleifendurchlauf abbricht, aber hab gerade eben herausgefunden, dass ich das mit continue verwechselt habe. Jetzt ergibt alles Sinn.

Wie kann ich das Thema als gelöst markieren?
 

Neue Themen


Zurück
Oben