GLBasic forum

Other languages => GLBasic - de => Topic started by: Markus on 2012-Apr-22

Title: (Erledigt) Break ???
Post by: Markus on 2012-Apr-22
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.

Code (glbasic) Select


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
Title: Re: Break ???
Post by: kanonet on 2012-Apr-22
Ganz einfach:
Code (glbasic) Select
IF G.ID=ID THEN F=G ;BREAK
Ist identisch zu:
Code (glbasic) Select
IF G.ID=ID THEN F=G
BREAK

; bedeutet neue Zeile, auch hinter einem THEN.

Du musst es also so schreiben:
Code (glbasic) Select
IF G.ID=ID
  F=G
  BREAK
ENDIF
Title: Re: Break ???
Post by: Markus on 2012-Apr-22
Hm,ja danke muß ich dann ja wohl.
Ich dachte das wär das Trennzeichen für Befehle wie üblich :