Continue will nicht mit Repeat-Until
Übersicht

![]() |
Der EisvogelBetreff: Continue will nicht mit Repeat-Until |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo,
der Befehl "Continue" treibt derzeit böse Spielchen mit mir. Folgender Code sollte in einer Endlosschleifen enden: BlitzMax: [AUSKLAPPEN] Repeat Aber ich bekomme die MessageBox nur einmal zu sehen. Bin ich jetzt doof? Continue soll doch zum Anfang der Schleife zurückspringen, oder nicht? MfG Der Eisvogel |
||
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB Projekte: Window-Crasher Ich liebe es mit der WinAPI zu spielen. |
![]() |
Noobody |
![]() Antworten mit Zitat ![]() |
---|---|---|
Continue springt zum Ende der Schleife. Dort steht in diesem Fall ein "Until True", welches sofort abbricht. | ||
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun |
![]() |
Der Eisvogel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ok, dann ist da ein Fehler in der Hilfe:
Zitat: Continue causes program flow to return to the start of the enclosing While, Repeat or For program loop
Dann muss wohl eine Hilfsvariable her. |
||
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB Projekte: Window-Crasher Ich liebe es mit der WinAPI zu spielen. |
![]() |
DaysShadow |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dreh es halt um:
BlitzMax: [AUSKLAPPEN] Repeat Läuft ewig bis du mit Exit raus springst. |
||
Blessed is the mind too small for doubt |
![]() |
Der Eisvogel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das ist sogar ne ganz gute Idee, jedoch muss dann da noch ein Exit rein, damit das so funktioniert wie ich brauche. Danke dir!
BlitzMax: [AUSKLAPPEN] Repeat |
||
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB Projekte: Window-Crasher Ich liebe es mit der WinAPI zu spielen. |
PhillipK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@Eisvogel:
Korrigier mich wenn ich falsch liege, aber so wie es da steht, läuft es endlos & "..." wird nie ausgeführt - Continue springt doch immer zum schleifenkopf, oder? |
||
![]() |
Propellator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Eben nicht, darum gehts ja im gesamten Thread. | ||
Propellator - Alles andere ist irrelephant.
Elefanten sind die Könige der Antarktis. |
![]() |
Markus2 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich habe das Continue immer so verstanden das es was danach kommt überspringt.
Was Du jetzt hast kannste auch mit Goto lösen. For i=1 To 20 If i Mod 2 Continue dieser Teil wird hier übersprungen bei Continue Next #here '... Goto here Statt Until True gibt es Forever |
||
![]() |
Jolinah |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich versteh den Sinn nicht ganz. Wenn du den Code danach sowieso nie ausführst weil er immer mit Continue übersprungen wird, dann kann man den Code doch auch einfach weglassen ![]() BlitzMax: [AUSKLAPPEN] Repeat oder aber BlitzMax: [AUSKLAPPEN] Repeat |
||
![]() |
Der Eisvogel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Grob sieht meine Anwendung so aus:
BlitzMax: [AUSKLAPPEN] Repeat Nur mit dem Unterschied, dass die Abfragen wesentlich komplizierter sind. Wenn eine Bedinungen jetzt nicht erfüllt ist, dann soll die Schleife erneut ausgeführt werden. Sind alle Bedingungen erfüllt, darf das Programm weitermachen. Im Grunde ist es gleich dem hier: BlitzMax: [AUSKLAPPEN] Repeat Jedoch sind meine Abfragen alle etwas komplizierter. Das Ergebnis einer Abfrage speicher ich in einer Variable, damit ich es danach abfragen kann. Nimmt man jetzt das zweite Beispielt, dann werden immer alle Abfragen ausgeführt, was ja eigentlich nicht nötig ist, wenn die erste Bedingungen nicht erfüllt ist, also will ich nach der ersten Abfrage abbrechen, was in Beispiel 1 der Fall ist. MfG Der Eisvogel |
||
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB Projekte: Window-Crasher Ich liebe es mit der WinAPI zu spielen. |
![]() |
ZEVS |
![]() Antworten mit Zitat ![]() |
---|---|---|
Falsch. BlitzMax optimiert das:
BlitzMax: [AUSKLAPPEN] SuperStrict Output: Zitat: func1
ZEVS |
||
![]() |
Der Eisvogel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das BlitzMax DAS optimiert ist mit klar, jedoch müsste ich dazu jede einzelen Abfrage in eine Funktion packen. Was sinnvoll wäre, wenn jede Abfrage seperat erfolgen würde, da sie aber teilweise aufeinander aufbauen, macht da auch eher weniger Sinn, da ich dann verschieden Sachen zwischenspeichern oder globale Variablen deklarieren müsste, wodurch der Code doch sehr unübersichtlich werden kann bei meine Anwendungsfall. Das jetzt aber ganz expliziet zu erläutern warum die andere Methode sinnvoller ist, ist zu kompliziert. Aber trotzdem danke für den Vorschlag.
MfG Der Eisvogel |
||
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB Projekte: Window-Crasher Ich liebe es mit der WinAPI zu spielen. |
![]() |
ZEVS |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das Prinzip der Orthogonalität besagt, dass es keinen Unterschied macht, ob du das ganze in eine Funktion packst oder gleich ausführst. Es sind z.B. auch solche Vergleiche möglich:
BlitzMax: [AUSKLAPPEN] If obj <> Null And obj.whatever = ... Then ... In diesem Fall kann obj auch Null sein und es kommt kein Fehler. ZEVS |
||
![]() |
Der Eisvogel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja, aber wenn ich jetzt in der einen Funktion z.B.: feststelle, dass mein Objekt etwas bestitzt (ebenfalls durch eine komplizierte Abfrage, WinAPI sei dank!), dann verändert sich das Verhalten anderer Abfragen, dass heißt, jede Abfrage, die ich in eine Funktion packe, muss irgendwie mit diesem einen Wert versorgt werden. Das ist bei einem Wert eventuell noch übersichtlich gestaltbar, aber bei mehrere solcher Werte wird da dann unübersichtlich. | ||
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB Projekte: Window-Crasher Ich liebe es mit der WinAPI zu spielen. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group