Thema: FreePascal for-Schleife -Abbruch

Einzelnen Beitrag anzeigen

Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#16

AW: for-Schleife -Abbruch

  Alt 16. Nov 2011, 08:52
Das dort umzuschalten ist aber keine so gute Idee. Besser ist es das an der Stelle zu schreiben, die eine bestimmte Einstellung voraussetzt.
Sprich:
Delphi-Quellcode:
function OperationIstLegal(KandidatenIndex: Integer): Boolean;
begin
  {$BOOLEVAL OFF}
  Result := not KandidatIstLeer(KandidatenIndex)
    and KandidatIstNumerisch(KandidatenIndex)
    and not (KandidatHatRoteHaare(KandidatenIndex) and HeuteIstDienstag);
end;
Denn wenn man das in den Projektoptionen einstellt (wobei das aus Optimierungsgründen auch die Voreinstellung ist), verlässt man sich darauf, dass es dort korrekt eingestellt ist. Wenn aber jemand anderes das dort umstellt, kann er sich über die Folgen nicht bewusst sein, da dort ja keinerlei Bezug zu dem Quelltext besteht, wo die Einstellung ggf. anders benötigt wird.

Einen fundamentalen Unterschied sehe ich hier aber nicht.
Für mich ist meine Version meistens leichter zu lesen, das kann aber auch am Alter liegen.
Fundamental ist der Unterschied auch nicht, aber es ist deutlich schneller zu sehen, wenn man als Unbeteiligter auf den Code schaut, wie das Result zugewiesen wird, wenn man nicht erst jede Zeile auf ein Exit durchschauen muss.
In diesem Fall ist das noch akzeptabel, aber ich habe schon Quelltexte gesehen wo ich große Mühe hatte den Quelltext genau nachzuvollziehen warum wo rausgesprungen wird und warum wo der Rückgabewert vorher gesetzt wurde...

Nebenbei gilt für mich der Grundsatz: Ein Befehl pro Zeile. Das Exit irgendwo hinten in der Zeile zu verstecken (statt es in eine neue Zeile zu schreiben) ist zusätzlich... suboptimal.
Sebastian Jänicke
AppCentral

Geändert von jaenicke (16. Nov 2011 um 08:55 Uhr)
  Mit Zitat antworten Zitat