Aus While Schleife springen?

Previous topic - Next topic

Heiko

Also ich hab vor mehrere while schleifen miteinander zu verknüpfen, also untereinander.
Bzw. einen Teil hab ich schon fertig.

Kann man aus dieser While Schleife (da kommt eine If bedingung) auch herausspringen, sodaß es nach dem Wend weitermacht?

WPShadow

BREAK? (vielleicht eine Lösung)
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

Heiko

Ich glaub nicht wirklich.

amarliani

Dumme Idee: Wenn z.B.

WHILE i<10
...
WEND

dann i auf nen Wert über 10 setzen?

BumbleBee

Wenn der Ausdruck im Schleifenkopf nicht mehr zutrifft wird die Schleife verlassen und die nächste wird durchlaufen. Meinst du so?

Code (glbasic) Select


Loop=1 //Mit Schleife 1 anfangen

            //Loop 1     
WHILE Loop=1

   PRINT "Schleife 1 ",100,100
          //Und raus hier mit Taste A
  IF KEY(30) THEN Loop=2

SHOWSCREEN
WEND

            //Loop 2
WHILE Loop=2

  PRINT "Schleife 2 ",100,100
    //Und raus hier mit Taste S
  IF KEY(31) THEN Loop=3

SHOWSCREEN
WEND

          //Loop 3
WHILE Loop=3

  PRINT "Schleife 3 ",100,100
    //Und jetzt ganz raus :)
  IF KEY(32) THEN END

SHOWSCREEN
WEND


Oder hab ich dich missverstanden. Sry ist ja schon spät für mich. :)

Cheers
The day will come...

CPU Intel(R) Core(TM) i5-3570k, 3.4GHz, AMD Radeon 7800 , 8 GB RAM, Windows 10 Home 64Bit

Heiko

#5
Im Schleifenkopf geht nicht....
So mein ich das.
Code (glbasic) Select
WHILE a<=variable

FOR i=0 TO 3
  "code"
NEXT

IF "irgendwas"
"nochirgendwas"

´Exit´-->hier rausspringen

ENDIF
a = a + 1
WEND

´weiter im Code´

Tiuz

in so einer verzwickten Situation ist ein 'GOTO endmarke:' schon gerechtfertigt, denke ich.
Auch wenn der Befehl an sich selbstverständlich böse bleibt ;)

Grüße, Tiuz




Kitty Hello

Jo. BREAK für eine Schleife. Goto für mehrere. Mach ich immer so. Oder ein "Jump_out_flag" setzen. Find ich aber doof.

Heiko

#8
Ich hatte Goto nur kurz in der Hilfe überflogen.
Und die Beschränkung gilt ja nur für Subs.

Also ist eine Funktion in der mehrere While...Wend vorkommen.
Und nur aus einer muss ich halt springen können.
Okay.Dann nehm ich GOTO.
Vielen Dank

dazu noch kurz ne FRage.
Sprungmarken werden aber vom restlichen code ignoriert, oder?
Also das Goto ist ja eine KANN Geschichte.
Es ist auch möglich, daß es die While Schleife normal beendet und dort vorbei muss.
Normal schon, ich weiß.....aber mein letztes Goto ist echt ewig her....

Schranz0r

Sobald du Goto aufrufst springst du zur Sprungmarke.
Frage einen Wert ab und pack das Goto in die Abfrage, dann hast du auch kein problem!
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

Heiko

#10
nein das meinte ich nicht.
in der function die ich hab, ist eben die while schleife dort wird in einer if abfrage mittels goto herausgesprungen.
ist die if bedingung allerdings nicht erfüllt, geht es weiter in der while schleife bis dessen bedingung nicht mehr erfüllt ist.
dann würde es ja nach wend weiter gehen.
und eben nach diesem wend steht meine sprungmarke.

also ich wollte nur wissen ob das
Code (glbasic) Select
sprungmarke: so auch noch beachtung findet, oder im normalen programmfluß keine rolle spielt.
aber das bekomm ich dann noch raus.



[edit] das gleiche habe ich jetzt auch bei einigen If bedingungen, so ein exit befehl wäre doch auch was, oder.


Schranz0r

wird einfach überlesen
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

Heiko

nein ich hab das schon verstanden.
mach ne schleife dort zu beginn zum beispiel eine if bedingung mit goto am ende, was dann da raus springt.
das ist mir schon klar.

ich meinte, ob, wenn die bedingung nicht erfüllt wird, also kein goto erfolgt, sondern die while schleife normal beendet wird via while bedingung, dann das folgende goto irgendeine rolle spielt im normalen fluß.
aber ich glaub nicht.
ist nur ein fähnchen am rand, was angesprungen werden kann, von woauchimmer.

ich hab das schon kapiert.

Kitty Hello

FOR i=0 TO 10000
a:
b:
c:
d:
NEXT

die Labels oben haben keinen Einfluss auf die Performance.

peterpan


mit WHILE EXIT !
ach, haben wir ja nicht !
ganz vergessen.