Buchempfehlung
Windows System Programming
Windows System Programming
Das Kompendium liefert viele interessante Informationen zur Windows-Programmierung auf Englisch. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

Referenz - IIF

Referenz-Navigation

 

Syntax: IIF (Bedingung, Ausdruck_wenn_wahr, Ausdruck_wenn_falsch)
Typ: Funktion
Kategorie: Programmablauf

IIF liefert einen von zwei Werten zurück, abhängig davon, ob die Bedingung erfüllt ist oder nicht.

IIF liefert einen Wert, abhängig vom Ergebnis der Bedingungsauswertung. Die typische Anwendung ist mitten in einem Ausdruck; so wird vermieden, dass ein Bedingungsausdruck unnötig aufgeteilt werden muss.

IIF berechnet den Ausdruck nur, bis das Ergebnis feststeht. Das spart Zeit und kann auch verhindern, dass Ausdrücke ausgewertet werden, die ungültige Ergebnisse nach Auswertung von Bedingung hätten.

Beispiel 1:

DIM AS INTEGER a, b, x, y, z
a = (x + y + IIF(b > 0, 4, 7)) \ z

Dieser Code ist äquivalent zu:

DIM AS INTEGER a, b, x, y, z, temp
IF b > 0 THEN temp = 4 ELSE temp = 7
a = (x + y + temp) \ z

Es obliegt dem Programmierer, zu entscheiden, welche Form die günstigere ist.

Beispiel 2: Zufallsbedingt a oder b ausgeben

DIM AS INTEGER a, b
PRINT IIF (RND < .5, a, b)

Beispiel 3:
Bis einschließlich FreeBASIC v0.24 mussten alle Parameter numerischer Natur sein. Dies schließt auch Pointer ein, sodass über einen Umweg auch mit BefehlsreferenzeintragSTRINGs gearbeitet werden konnte.

' Verwendung von Strings bis fbc 0.24
DIM AS INTEGER a, b
PRINT "Ist a > b? Antwort: "; *IIF(a > b, @"Ja", @"Nein")
SLEEP

Seit FreeBASIC v0.90 sind STRINGs und BefehlsreferenzeintragUDTs problemlos nutzbar.

' Verwendung von Strings ab fbc 0.90
DIM AS INTEGER a, b
PRINT "Ist a > b? Antwort: "; IIF(a > b, "Ja", "Nein")
SLEEP

Unterschiede zu QB: neu in FreeBASIC

Unterschiede unter den FB-Dialektformen:
In der Dialektform Befehlsreferenzeintrag-lang qb steht IIF nicht zur Verfügung und kann nur über __IIF aufgerufen werden.

Unterschiede zu früheren Versionen von FreeBASIC:

Siehe auch:
BefehlsreferenzeintragIF...THEN, BefehlsreferenzeintragAusdrücke und Operatoren, BefehlsreferenzeintragBedingungsstrukturen


Zusätzliche Informationen und Funktionen
  • Der Referenzeintrag wurde am 29.07.2007 von Redakteurytwinky angelegt.
  • Die aktuellste Version wurde am 01.07.2013 von Redakteurnemored gespeichert.
  Versionen Versionen