Vorsicht Noob-Frage!
ich will in einer schleife einen wert prüfen, der von einer intensiven funktion ausgespuckt wird.
damit ich die funktion nicht zweimal aufrufen muss speichere ich den rückgabe wert in einer globalen variable, die dann in der while-schleife verfügbar ist (Beispiel 1).
alternativ (Beispiel 2) kann ich vor der ersten while-schleife den wert zurückgeben lassen und in der (letzten zeile) der while schleife neu berechnen.
geht das eleganter, oder benutze ich die falsche schleife?
(ich will ja weg von meinem schlechten design
)
Code
; Beispiel 1: mit Global Variable
Global $value1 ; <--- diese Global will ich mir sparen
Func LongFunction1() ; simulation einer aufwändigen Funktion
$value1 = Random(1,10)
Return $value1
EndFunc
Func Handler1()
While LongFunction1() > 2
; ... code
WEnd
ConsoleWrite("Handler1 is done!" & @CRLF)
EndFunc
Handler1()
; Beispiel 2: ohne Global Varbiable
Func LongFunction2() ; simulation einer aufwändigen Funktion
Return Random(1,10)
EndFunc
Func Handler2()
Local $value2
$value2 = LongFunction2() ; <--- so gehts, is aber unschick
While $value2 > 2
; ... code
$value2 = LongFunction2() ; <--- so gehts, is aber unschick
WEnd
ConsoleWrite("Handler2 is done!" & @CRLF)
EndFunc
Handler2()
Alles anzeigen