PBXB64 Kontrollfluss

Vollständiger Kontrollfluss Standard

Vollständiger Kontrollfluss mit FOR-Schleifen (7 Ganzzahl-Typen + Float, negativer STEP), WHILE, DO/UNTIL, SELECT CASE (Verschachtelung, TO-Bereiche, IS-Ausdrücke), GOSUB/RETURN, EXIT, ON GOTO, ON KEY CALL und Doppelpunkt-Anweisungstrenner in einer Zeile.

FOR-Schleifen - 7 Ganzzahl-Typen + Float + Negativer STEP

FOR mit allen Ganzzahl-Typen
FUNCTION PBMAIN() AS LONG LOCAL g AS LONG LOCAL i AS LONG ' Standard LONG FOR i = 1 TO 3 g = g + i NEXT PRINT "LONG sum: "; g ' 6 ' Negativer STEP FOR i = 10 TO 1 STEP -1 g = g + 1 NEXT PRINT "Negativ: "; g ' 16 ' DWORD LOCAL dw AS DWORD FOR dw = 1 TO 3 g = g + 1 NEXT ' WORD, INTEGER, BYTE, QUAD, CURRENCY alle unterstützt FUNCTION = 0 END FUNCTION

FOR-Schleifen unterstützen LONG, INTEGER, QUAD, DWORD, WORD, BYTE, CURRENCY (alle einzeln getestet) und DOUBLE/SINGLE/EXTENDED mit Float-STEP. Negativer STEP funktioniert korrekt für alle Ganzzahl-Typen.

SELECT CASE - Verschachtelt, TO-Bereiche, IS-Ausdrücke

SELECT CASE mit allen Formen
FUNCTION PBMAIN() AS LONG LOCAL x AS LONG x = 25 SELECT CASE x CASE 1 TO 10 PRINT "1-10" CASE 11 TO 20 PRINT "11-20" CASE IS > 20 PRINT "Größer als 20" CASE 25 PRINT "Genau 25" CASE ELSE PRINT "Andere" END SELECT FUNCTION = 0 END FUNCTION

SELECT CASE unterstützt: exakte Übereinstimmung, TO-Bereiche, IS > < = <>-Ausdrücke, CASE ELSE und verschachtelte CASE-Blöcke. Kein Durchfallen zum äußeren CASE ELSE.

ON KEY CALL - Tastatur-Hook-Subroutinen

PBXB64-Erweiterung Registriert einen Low-Level-Tastatur-Hook (WH_KEYBOARD_LL), der eine benannte PB-Subroutine bei Tastendruck/-loslassen aufruft.

ON KEY CALL - Tastatur-Ereignisse
DECLARE SUB OnKeyPress() ON KEY DOWN CALL OnKeyPress SUB OnKeyPress() PRINT "Taste gedrückt!" END SUB FUNCTION PBMAIN() AS LONG PRINT "Drücken Sie eine Taste..." SLEEP 5000 FUNCTION = 0 END FUNCTION

ON KEY [DOWN|UP] CALL SubName registriert einen WH_KEYBOARD_LL-Hook. Die benannte Subroutine wird aufgerufen, wenn das angegebene Tastatur-Ereignis eintritt. Funktioniert in Konsolen- und GUI-Modus.

Doppelpunkt-Trenner - Mehrere Anweisungen pro Zeile

Doppelpunkt-Anweisungstrenner
FUNCTION PBMAIN() AS LONG LOCAL a AS LONG : LOCAL b AS LONG a = 1 : b = 2 : PRINT a + b IF a = 1 THEN PRINT "Eins" : PRINT "Noch Eins" FUNCTION = 0 END FUNCTION

Der Doppelpunkt :-Trenner erlaubt mehrere Anweisungen in einer Zeile. Beide Anweisungen werden korrekt geparst und ausgeführt. Wichtig für kompakte Code-Layouts.

Weiterer Kontrollfluss

WHILE, DO, EXIT, GOSUB
FUNCTION PBMAIN() AS LONG LOCAL i AS LONG ' WHILE i = 0 WHILE i < 3 PRINT "WHILE "; i i = i + 1 WEND ' DO/UNTIL i = 0 DO i = i + 1 IF i = 2 THEN EXIT DO LOOP UNTIL i >= 5 PRINT "Nach EXIT DO: "; i ' 2 ' GOSUB/RETURN GOSUB MySub PRINT "Zurück vom Sub" FUNCTION = 0 MySub: PRINT "In Subroutine" RETURN END FUNCTION

WHILE/WEND, DO/UNTIL/LOOP, EXIT DO/EXIT FOR/EXIT FUNCTION, GOSUB/RETURN und ON GOTO alle vollständig implementiert mit korrektem Code-Gen und ohne Endlosschleifen.

Zurück zur Feature-Liste