Korrekte Struktursyntax für Pascal, wenn dann begin end und; (im Inno-Setup)

7

Es ist ungefähr 20 Jahre her, dass ich zuletzt in Pascal schreiben musste. Ich kann nicht scheinen, die Strukturelemente der Sprache richtig zu verwenden, wo ich neste, wenn Blöcke mit Anfang und Ende blockieren. Zum Beispiel erhält dies einen Compiler Error "Identifier Expected"

%Vor%

Natürlich, wenn ich den if then Block und die begin end Blöcke, die mit ihnen verbunden sind, entferne, ist alles in Ordnung.

Manchmal bekomme ich diese Syntax richtig und es funktioniert OK, aber die Probleme werden beim Verschachteln der if then else Blöcke ärgerlich.

Das Lösen des Problems ist hier nicht genug. Ich möchte besser verstehen, wie man diese Blöcke benutzt. Mir fehlt eindeutig ein Konzept. Irgendetwas aus C ++ oder C # kommt wahrscheinlich aus einem anderen Teil meines Verstandes und verwirrt mein Verständnis. Ich habe ein paar Artikel darüber gelesen, und ich glaube, ich verstehe es und dann nicht.

    
amalgamate 29.01.2015, 17:56
quelle

1 Antwort

24

Sie müssen jedes begin mit einem end auf der gleichen Ebene wie

abgleichen %Vor%

Sie können die Anzahl der verwendeten Zeilen verkürzen, ohne die Platzierung zu beeinflussen. (Das oben genannte kann jedoch einfacher sein, wenn Sie sich zuerst an die Syntax gewöhnen.)

%Vor%

Wenn Sie eine einzelne Anweisung ausführen, ist begin..end optional. Beachten Sie, dass die erste Bedingung kein abschließendes ; enthält, da Sie die Anweisung noch nicht beenden:

%Vor%

Das Semikolon ist optional bei der letzten Anweisung in einem Block (obwohl ich es normalerweise auch bei der Option einschließe, um zukünftige Probleme zu vermeiden, wenn Sie eine Zeile hinzufügen und vergessen, die vorherige Zeile gleichzeitig zu aktualisieren).

%Vor%

Sie können auch einzelne und mehrere Anweisungsblöcke kombinieren:

%Vor%

Die richtige Verwendung für Ihren Code wäre:

%Vor%     
Ken White 29.01.2015, 18:00
quelle