das Rechnen mit Quads in Ausdrücken funktioniert scheinbar nicht (hier am Beispiel mit Repeat .. Until).
Folgender Code wird fehlerhaft ausgeführt:
Code: Alles auswählen
Global counter.l
Global quad1.q
Global quad2.q
If OpenConsole()
EnableGraphicalConsole(1)
ClearConsole()
counter=0
quad1=1
quad2=0
Repeat
counter+1
quad2+1
ConsoleLocate(0,1)
PrintN("counter = "+Str(counter))
Delay(1000)
Until quad2 > quad1+quad1*3 ; quad1 muesste den Wert 4 haben -> Abbruch nach 5 Durchlaeufen
ConsoleLocate(0,5)
PrintN("Anzahl der Durchlaeufe = "+Str(counter))
Input()
EndIf
End
hier wird die Schleife aber nach dem 1. Durchlauf beendet.
Mit Long Variablen tritt dieser Fehler nicht auf!
Hier noch ein Code mit Quads bei dem das ganze funktioniert:
Code: Alles auswählen
Global counter.l
Global quad1.q
Global quad2.q
If OpenConsole()
EnableGraphicalConsole(1)
ClearConsole()
counter=0
quad1=1
quad2=0
quad1+quad1*3 ; hier wird die Abbruchbedingung vorher errechnet -> quad1 = 4
Repeat
counter+1
quad2+1
ConsoleLocate(0,1)
PrintN("counter = "+Str(counter))
Delay(1000)
Until quad2 > quad1
ConsoleLocate(0,5)
PrintN("Anzahl der Durchlaeufe = "+Str(counter))
Input()
EndIf
End