Verwenden Sie if .. then oder if .. then .. else, um passenden Code auszuführen, wenn die Bedingung wahr ist. Im Gegensatz zu C-artigen Sprachen: Der Bedingungsausdruck in Pascal braucht keine runden Klammern.
var
A: Integer;
B: boolean;
begin
// Nur eine Anweisung bei wahrer Bedingung, begin end ist nicht nötig
if A > 0 then
DoSomething;
// Mehrere Anweisungen bei wahrer Bedingung, müssen mit begin end umhüllt werden
if A > 0 then
begin
DoSomething;
AndDoSomethingMore;
end;
// Einzeilige if-else-Struktur
if A > 10 then
DoSomething
else
DoSomethingElse;
// Logisch identisch mit obigem Beispiel: Vergleichsergebnis zuerst in Boolean-Variable speichern
B := A > 10;
if B then
DoSomething
else
DoSomethingElse;
end;Code-Sprache: JavaScript (javascript)
Bindungsregel für else
Das else bindet sich an das nächste noch ungebundene if. Der folgende Code verhält sich wie erwartet:
if A <> 0 then
if B <> 0 then
AIsNonzeroAndBToo
else
AIsNonzeroButBIsZero;Code-Sprache: HTML, XML (xml)
Dieses else gehört zum inneren if B <> 0.
Verschachtelte if ohne Block sind syntaktisch erlaubt, aber schlecht lesbar. Es empfiehlt sich, den inneren verschachtelten Bereich mit begin … end einzukapseln, um logische Grenzen deutlich zu machen; selbst bei unordentlicher Einrückung erkennt man leicht den Gültigkeitsbereich und vermeidet Fehler beim Hinzufügen oder Entfernen von Zweigen.
Optimierte Standardschreibweise:
if A <> 0 then
begin
if B <> 0 then
AIsNonzeroAndBToo
else
AIsNonzeroButBIsZero;
end;Code-Sprache: HTML, XML (xml)
- Keine Klammern um die if-Bedingung (in C/C++/Java zwingend erforderlich, bei Pascal umgekehrt);
- Bei nur einer Zeile nach then kann
begin endweggelassen werden; bei mehreren Zeilen ist es Pflicht; elsebindet sich an das innerste nächste if; bei Verschachtelungen immer Blöcke nutzen, um Mehrdeutigkeit auszuschließen;- Vergleichsausdrücke (z.B.
A>10) können direkt einer Boolean-Variablen zugewiesen werden.
Unten ein vollständiges lauffähiges Beispiel: Notenbewertung
Logikregeln:
- ≥90 → A
- ≥80 und <90 → B
- ≥60 und <80 → C
- <60 → D
{$ifdef FPC} {$mode objfpc} {$H+} {$endif}
{$codepage utf8}
program ScoreLevel;
var
score: Integer;
begin
Write('Geben Sie die Prüfungsnote ein: ');
ReadLn(score);
if score >= 90 then
Writeln('Stufe: A')
else if score >= 80 then
Writeln('Stufe: B')
else if score >= 60 then
Writeln('Stufe: C')
else
Writeln('Stufe: D');
ReadLn;
end.Code-Sprache: PHP (php)
Kompilieren und ausführen
Geben Sie die Prüfungsnote ein: 96
Stufe: ACode-Sprache: PHP (php)
Das Programm fordert zur Eingabe einer Note auf und gibt die passende Stufe aus.
Nicht-englische Zeichen können verstümmelt angezeigt werden, fügen Sie diese Zeile hinzu: {$codepage utf8}
Wir können die Stufenberechnung auch in eine Funktion verpacken.
{$ifdef FPC} {$mode objfpc} {$H+} {$endif}
{$codepage utf8}
program ScoreLevelFunc;
function GetLevel(s: Integer): string;
begin
if s >= 90 then
Result := 'A'
else if s >= 80 then
Result := 'B'
else if s >= 60 then
Result := 'C'
else
Result := 'D';
end;
var
score: Integer;
begin
Write('Ihre Note: ');
ReadLn(score);
Writeln('Ihre Stufe: ', GetLevel(score));
ReadLn;
end.Code-Sprache: PHP (php)

if-Bedingungsvergleich