Referenz - FUNCTIONs
FUNCTIONs sind ebenso wie SUBs Prozeduren. Im Gegensatz zu einer SUB kann eine FUNCTION allerdings auch einen Wert zurückgeben. FUNCTIONs bestehen aus dem Prozedurheader, dem Programmcode, und der Zeile END FUNCTION. Der Prozedurheader und der Programmcode folgen den selben Regeln wie bei SUBs. Im Programmcode können andere FUNCTIONs und SUBs aufgerufen werden. Es ist auch möglich, die FUNCTION selbst aufzurufen. Solche sogenannten rekursiven FUNCTIONs sollten allerdings mit Bedacht eingesetzt werden, da sie oft schwer zu warten sind. FUNCTIONs werden im Programmcode wie Variablen behandelt, die abhängig von ihren Parametern verschiedene Werte haben. Sie werden durch ihren Bezeichner aufgerufen. Der Wert einer FUNCTION kann auf dreierlei Weise gesetzt werden:
- Über ihren Bezeichner: FunktionsName = Ausdruck
- Über das Symbol "FUNCTION": FUNCTION = Ausdruck
- Über RETURN: RETURN Ausdruck
Achtung: RETURN funktioniert wie FUNCTION=Ausdruck: EXIT FUNCTION
Beispiel:
DECLARE FUNCTION twice (x)
FUNCTION twice (x)
twice = x * 2
END FUNCTION
'Gibt 20 aus, das Doppelte von 10:
PRINT twice (10)
Eine rekursive FUNCTION:
DECLARE FUNCTION Fakultaet (BYVAL x AS INTEGER)
PRINT Fakultaet(6)
SLEEP
FUNCTION Fakultaet (BYVAL x AS INTEGER) AS INTEGER
STATIC Erg AS INTEGER
IF Erg = 0 THEN
Erg = x
ELSE
Erg *= x
END IF
x = x - 1
IF x = 0 THEN
RETURN Erg
ELSE
Erg = Fakultaet(x)
END IF
FUNCTION = Erg
END FUNCTIONDer Parameter x kann dabei maximal 32765 sein, danach wird die Sub ergebnislos mit dem Fehler "Stack Overflow" abgebrochen. Das Ergebnis dieser Berechnung wäre allerdings weit über dem Wertebereich eines ULongInt.
| Zusätzliche Informationen und Funktionen | ||||
|---|---|---|---|---|
|
||||





Versionen