GLBasic Benutzerhandbuch

Main sections

FOREACH

FOREACH ref IN feld[]
...
NEXT



Mit dem FOREACH Befehl kann man schnell und einfach ein Feld durchlaufen und daraus Werte lesen und zurückschreiben.
Dabei wird "ref" je Schleifendurchlauf ein Zeiger (BYREF) auf das nächste Element im Feld zugewiesen.
Man muss "ref" nicht als LOCAL definieren. Das passiert automatisch. Jedoch ist "ref" nach dem zugehörigem "NEXT" nicht mehr gültig.

Mit anderen Befehlen ausgedrückt bedeutet FOREACH in etwa:

FOR i = 0 to BOUNDS(feld[],0)-1
ref = feld[i]
...
feld[i] = ref
NEXT


Beispiel:
// --------------------------------- //
// Project: ForEach

// Make an array of numbers
// Ein Feld von Zahlen
DIMDATA a[], 12,14,15,17

// Enumerate the numbers
// Die Zahlen durchlaufen
FOREACH num IN a[]
    a$=a$ + num + ", "
NEXT
PRINT a$, 0,0

// a simple TYPE
// ein einfacher TYPE
TYPE SHOP
    milk$
ENDTYPE

// An array-instance of it
// Eine Feld-Instanz davon
LOCAL kmart[] AS SHOP

// Fill with values
// Mit Werten füllen
DIM kmart[3]
    kmart[0].milk$ = "fat free"
    kmart[1].milk$ = "fatty"
    kmart[2].milk$ = "butter"

    a$=""
    // Enumerate all shops
    // Alle shops durchlaufen
    FOREACH item IN kmart[]
        a$ = a$ + item.milk$ + ", "
    NEXT
    PRINT a$, 0, 40


    SHOWSCREEN
    MOUSEWAIT

See also...