Eigentlich wollte ich die Schleife bei gefunden mit dem Break verlassen.
Aber das Break kommt immer :rant: warum das denn?
Sieht doch eigentlich so aus IF G.ID=ID THEN F=G ;BREAK ENDIF
nur das ENDIF der Zeilenumbruch ist.
Bei Visual Basic nennt sich das Exit For , bei anderen nur Exit was ich brauche.
TYPE TTest
ID
ENDTYPE
GLOBAL MeineListe[] AS TTest
LOCAL A AS TTest
A.ID=1
LOCAL B AS TTest
B.ID=2
LOCAL C AS TTest
C.ID=3
DIMPUSH MeineListe[],A
DIMPUSH MeineListe[],B
DIMPUSH MeineListe[],C
LOCAL Found AS TTest
Found=FindID(3)
DEBUG "Gefunden " + Found.ID +"\n"
END
FUNCTION FindID AS TTest: ID
LOCAL F AS TTest
LOCAL G AS TTest
FOREACH G IN MeineListe[]
DEBUG "Eintrag ID "+G.ID +"\n"
IF G.ID=ID THEN F=G ;BREAK //mal mit und ohne Break angucken
NEXT
RETURN F
ENDFUNCTION
Ganz einfach:
IF G.ID=ID THEN F=G ;BREAK
Ist identisch zu:
IF G.ID=ID THEN F=G
BREAK
; bedeutet neue Zeile, auch hinter einem THEN.
Du musst es also so schreiben:
IF G.ID=ID
F=G
BREAK
ENDIF
Hm,ja danke muß ich dann ja wohl.
Ich dachte das wär das Trennzeichen für Befehle wie üblich :