Hi!
Aber wenn da noch weiterer Code hinzukommt, besonders welcher zwischen "found = true" und dem Schleifenende, braucht es noch ein continue.
Dem widerspreche ich einfach mal und behaupte: Es geht sicherlich auch ohne continue. Wenn du ein Beispiel lieferst, das ich nicht in eines ohne continue verwandeln kann, gebe ich mich geschlagen. ;-)
Das Ergebnis steht fest. Und es kommt auch kein Code, der noch irgendwas sinnvolles tun soll, denn sonst hätte die return-Variante nicht eingesetzt werden können. Warum also sollte man den nachfolgenden Code noch ausführen? Vielleicht macht oder veranlasst er sogar etwas, was gleich gar nicht gewünscht ist?
Ich behaupte weiter: In den allermeisten Fällen ist die Variante mit continue nicht essentiell eleganter. Guten Gegenbeispielen stehe ich aber aufgeschlossen gegenüber.
Eben, deswegen return und fertig.
Das break ist klar. Beim found=true muss ich erst verfolgen, was mit diesem Wert demnächst angestellt wird.
Liest du den Schleifenkopf nicht vor dem Rumpf??Es suggeriert vielleicht ein Ende, aber verlassen würde ich mich darauf nicht.
Äh, das found wird im Schleifenkopf verwendet. Die Schleife wird abgebrochen, wenn diese Variable true ist. Das ist nicht bloß eine Suggestion, das ist ein Fakt. Oder übersehe ich etwas?
Das ist erst dann ein Fakt, wenn ich mich davon überzeugt habe. Dazu muss ich den gesamten Code kennen und brauch nicht nur das break zu sehen. Natürlich muss ich auch den gesamten Code sehen, um mir ein Bild von der Funktionalität zu machen. Aber ich muss es doch durch nicht wirklich benötigte Variablen nicht noch einen Zahn komplexer gestalten. (Wer sowas aus Prinzip macht, macht das dann sicher auch, wenn es überhaupt nicht mehr sinnvoll ist, nur um sein Prinzip zu bedienen.)
Fehler verstecken sich am liebsten hinter nicht überprüftem aber angenommenen Verhalten.
Das ist ein Allgemeinplatz. Unter dem Gesichtspunkt, dass der Schleifenabbruch nicht bloß suggeriert ist (s.o.), verstehe ich nicht, was er hier aussagen soll.
Wie gesagt, erst alle Beweise sichten, dann zum Urteil kommen. Ein unanzweifelbarer Fakt kann diese Prozedur abkürzen. Dass wir hier Allgemeinplätze bemühen, finde ich nicht weiter tragisch. Das liegt in der Natur unserer Diskussion, denn wir reden ja nicht über konkreten Code sondern über allgemeine Vorgehensweisen.
Und dass die Schleife beim Finden abgebrochen wird, kann man auch als Kommentar hinterlassen, wenn der Code so <del>unübersichtlich</del><ins>komplex</ins> ist, dass man das nicht auf einen Blick erkennt.
Und wenn sich jemand auf den Kommentar verlässt, _dann_ greift in meinen Augen dein Allgemeinplatz von oben. Kommentar und Code divergieren leider bisweilen...
Nunja, mit Fehlern sollte man immer rechnen. Davor ist die Abbruchvariablen-Variante auch nicht gefeit. Rein rechnerisch steigt dabei die Fehlerwahrscheinlichkeit durch die zusätzliche Variable sogar noch.
Lo!