IF ... THEN

FreeBASIC-Referenz » Alphabetische Befehlsreferenz » I » IF ... THEN

Syntax A:

IF Bedingung THEN [:] Anweisungen [ELSE Anweisungen] [:] [END IF]

Syntax B:

IF Bedingung_1 THEN
   ' Anweisungen
[ELSEIF Bedingung_2 THEN
   ' Anweisungen]
[ ... ]
[ELSE
   ' Anweisungen]
END IF

Typ: Anweisung
Kategorie: Programmablauf

IF...THEN führt einen Codeteil nur dann aus, wenn eine Bedingung erfüllt ist.

Mit IF...THEN werden einfache Entscheidungen getroffen. Um eine Variable auf viele verschiedene Möglichkeiten hin zu prüfen, wird bevorzugt SELECT CASE verwendet.

Die Bedingungen werden in der Reihenfolge abgearbeitet, in der sie im Code stehen. Der Code hinter ELSE wird abgearbeitet, wenn keine der vorhergehenden Bedingungen wahr ist.

Folgende Bedingungsstrukturen sind möglich:

Der IF...THEN-Block muss mit END IF abgeschlossen werden.

Wenn IF nur als einzeiliger Befehl eingesetzt wird, ist END IF optional; das soll das Portieren von C-Code erleichtern. Alternativ zu END IF kann man auch ENDIF schreiben, also ohne ein Leerzeichen.
Nur in der einzeiligen Version dürfen hinter THEN und ELSE Anweisungen folgen.
Als Block-Anweisung (Syntax B) initialisiert IF...THEN seit FreeBASIC v0.16 einen SCOPE-Block, der mit der Zeile END IF endet. Variablen, die innerhalb eines solchen Blocks deklariert werden, existieren außerhalb nicht mehr.

Beispiel: Einfaches Ratespiel

RANDOMIZE
DIM AS INTEGE x = INT(RND*10)

PRINT "Rate die Zahl von 0 und 9)"

DO
   INPUT "Rate..."; y
   IF x = y THEN
      PRINT "richtig!"
      EXIT DO
   ELSEIF x > y THEN
      PRINT "zu klein!"
   ELSE
      PRINT "zu groß!"
   END IF
LOOP
SLEEP

Unterschiede zu QB:

Unterschiede zu früheren Versionen von FreeBASIC:

Unterschiede unter den FB-Dialektformen:

Siehe auch:
IF (Meta), SELECT CASE, IIF, DO ... LOOP, Ausdrücke und Operatoren, Bedingungsstrukturen