Wenn man Exit richtig einsetzt erhöht das die Lesbarkeit; wenn man es falsch einsetzt verringert man die Lesbarkeit.
Es geht also nicht um die Anzahl der Zeilen oder Optik sondern um die Lesbarkeit.
Genau so ist es. Ich setze Exit und Break ein, wo es sinnvoll ist. Ich habe sogar letztens zum ersten mal seit 5 Jahren oder so mal wieder ein Goto verwendet, weil – ihr werdet es nicht glauben – es den Code erheblich vereinfacht hat.
Das:
Zitat von
FredlFesl:
Delphi-Quellcode:
i := 1;
Aborted := False;
While (i <= N) and not Aborted Do
Begin
j := 1;
While (j <= M) and Not Aborted Do
Begin
If Bla[i,j].HasInvalidData() Then
Aborted := True
Else
Begin
Bla[i,j].Process();
...
Inc(J)
End;
End;
Inc(i);
End;
ist einfach nicht übersichtlicher als das:
Zitat von
FredlFesl:
Delphi-Quellcode:
For i:=1 to N Do
For j := 1 to M Do
Begin
If Bla[i,j].HasInvalidData() Then Exit;
Bla[i,j].Process();
...
End;
Egal wie oft man es behauptet. Ich habe so ähnliche Dinger wie das obere Beispiel (Danke, FredlFesl) tatsächlich schon ein paar mal gesehen und jedes mal Krämpfe bekommen.
Sicher gibt es auch genau so gute Beispiele wie man seinen Code mit Exits und Breaks verhunzen kann.
Es kommt eben immer auf das richtige Maß an. Alles mit Scheuklappen auf eine vorgebene Weise zu machen ist übrigens auch ein Anti-Pattern:
Zitat:
Golden hammer: Assuming that a favorite solution is universally applicable