if-Bedingungsvergleich

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 end weggelassen werden; bei mehreren Zeilen ist es Pflicht;
  • else bindet 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

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert