BASIC

Author Topic: (Erledigt) Break ???  (Read 1760 times)

Offline Markus

  • Mr. Polyvector
  • ***
  • Posts: 125
  • Offline
    • View Profile
(Erledigt) Break ???
« 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
 
« Last Edit: 2012-Apr-23 by Markus »

Offline kanonet

  • Administrator
  • Prof. Inline
  • *******
  • Posts: 1142
    • View Profile
    • My GLBasic code archiv
Re: Break ???
« Reply #1 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
Lenovo Thinkpad T430u: Intel i5-3317U, 8GB DDR3, NVidia GeForce 620M, Micron RealSSD C400 @Win7 x64

Offline Markus

  • Mr. Polyvector
  • ***
  • Posts: 125
  • Offline
    • View Profile
Re: Break ???
« Reply #2 on: 2012-Apr-22 »
Hm,ja danke muß ich dann ja wohl.
Ich dachte das wär das Trennzeichen für Befehle wie üblich :