Zitat:
Und irgendwie finde ich meine Version übersichtlicher, als eure ._.
Delphi-Quellcode:
Delphi-Quellcode: zusammenfalten | markieren
// MEINE
If ... Then Begin
...;
End Else If ... Then Begin
...;
End Else if ... Then Begin
...;
End Else Begin
End;
// das Andere
if ... then
begin
...;
end else
if ... then
begin
...;
end else
if ... then
begin
...;
end else
begin
end;
Und ja, ich mache manchmal immernoch mehrere Befehle in eine Zeile, wenn es logisch zusammengehört und so auch noch übersichtlicher ist
Sorry aber das ist Spaghetti Code. Due zerstörst damit die visuelle Kommunikation mit dem Leser.
Im zweiten, wesentlich besseren beispiel kann man sehr schön und deutlich erkennen das es 4 sequientielle Abhänigkeiten gibt. Der 4'te Source block wird nur ausgeführt wenn der 3'te UND 2'te UND 1'te Sourceblock NICHT ausgeführt werden. Formal also if not (Block1 and Block2 and Block3) then Block4.
Das ist im ersten Beipiel definitiv nicht visuell zu erkennen. Dieser Beispiel könnte auch eine CASE Anweisung darstellen. Also eine Auswahl von 4 Möglichkeiten bei der immer 1 Möglichkeit mit gleichhoher Wahrscheinlichkeit wie die anderen 3 zutreffen können.
Zudem: syntaktische Sprachbezeichner schreibt man immer klein und da wir nicht in Deutsch programmieren gelten auch nicht die deutschen Rechtschreibregeln
Desweiteren ist eine spätere Veränderung der Verschachtelungen sehr einfach möglich. Gesetzt den fall das man im 2'ten Block noch eineiges an Precomputing reinbauen möchte, also gemeinsamme Variablen initialisieren möchte dann sieht das so aus:
Delphi-Quellcode:
if ... then
begin
...;
end else
if ... then
begin
...;
end else
begin
Variable := XYZ;
if ... then
begin
...;
end else
begin
end;
end;
Die gesamtstruktur bleibt erhalten, was auch logisch ist da das objige Konstrukt nur ein reduzierte Kurzform der vollständigen Systax ist:
Delphi-Quellcode:
if ... then
begin
...;
end else
begin
if ... then
begin
...;
end else
begin
if ... then
begin
...;
end else
begin
end;
end;
end;
Die Kurzschreibweise ist also eine reine Reduktion von begin end blöcken per Löschen von Zeilen. Eine Expansion einer Kurzschreibweise sollte nur durch einfügen von begin end Blöcken wieder auf die offiziell richtige Schreibweise zurückführen (mit Außnahmen wie immer
)
Gruß Hagen