Die richtige Struktur-syntax für Pascal, wenn dann begin end und ;
Es wurde rund 20 Jahre her, seit ich das Letzte mal schreiben musste, in Pascal. Ich kann nicht scheinen, um die Nutzung der Strukturelemente der Sprache richtig, wo ich bin Schachteln if then
Blöcke mit begin
und end
. Zum Beispiel diese bekommt von mir eine Compiler-Fehlermeldung "Bezeichner Erwartet".
procedure InitializeWizard;
begin
Log('Initialize Wizard');
if IsAdminLoggedOn then begin
SetupUserGroup();
SomeOtherProcedure();
else begin (*Identifier Expected*)
Log('User is not an administrator.');
msgbox('The current user is not administrator.', mbInformation, MB_OK);
end
end;
end;
Natürlich, wenn ich entfernen Sie die if then
block und die begin end
Blöcke, die mit Ihnen verbunden sind, dann ist alles OK.
Manchmal bekomme ich es auf diese Art von syntax, die Rechte und es klappt OK, aber die Probleme werden der Verzweiflung, wenn die Verschachtelung der if then else
Blöcke.
Lösung des Problems ist hier nicht genug. Ich will ein besseres Verständnis, wie diese Blöcke. Ich bin eindeutig fehlt ein Konzept. Etwas von C++ oder C# ist wahrscheinlich schleichen sich die aus einem anderen Teil von meinem Kopf und vermasselt mein Verständnis. Ich habe ein paar Artikel darüber, und auch ich denke, dass ich es verstehe und dann weiß ich nicht.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie haben mit jedem
begin
mit einemend
auf der gleichen Ebene, wieKürzen kann man die Anzahl der Zeilen verwendet, ohne Auswirkungen auf die Platzierung, wenn Sie bevorzugen. (Das oben ist, ist es möglicherweise einfacher, wenn Sie zunächst verwendet, um die syntax, aber.)
Wenn Sie ausführen, eine einzelne Anweisung, die
begin..end
sind optional. Beachten Sie, dass die erste Bedingung nicht enthalten eine abschließende;
, als Sie noch gar nicht zum Ende der Anweisung:Ist das Semikolon optional auf die Letzte Anweisung in einem block (obwohl ich normalerweise es aufnehmen, auch wenn es optional ist, zu vermeiden, zukünftige Probleme, wenn Sie eine Zeile hinzufügen, und vergessen ein update der vorhergehenden Zeile auf die gleiche Zeit).
Können Sie kombinieren Einzel-und mehrere anweisungsblöcke als gut:
Den richtigen Einsatz für Ihren code wäre:
begin
müssen Sie nichtend
. Siehe meinen Dritten code-Beispiel oben.