Seite 1 von 2
Wie kommt man aus der Schleife raus?
Verfasst: 22.10.2005 20:59
von PB42
Hallo,
angenommen, ein Programm durchläuft eine Endlosschleife, dann kann man bei Programmen, die mit Openscreen arbeiten, jederzeit mit "If keyPushed" aus der Schleife aussteigen, aber wie macht man das bei Programmen, die mit openWindow() arbeiten?
PB42
Verfasst: 22.10.2005 21:14
von MVXA
gar nicht anders o_O? Eine Schleife verlässt man mit Break
Verfasst: 22.10.2005 21:30
von PB42
Danke, war mir entfallen.
PB42
Verfasst: 25.10.2005 22:54
von Kaeru Gaman
meiner meinung nach verläßt man ne schleife mit ner abbruchbedingung...
ich finde endlosschleifen nicht gut, und 'Break' ist imho keine wirkliche lösung...
Verfasst: 25.10.2005 22:58
von MVXA
könntest du die Aussagen begründen?
Verfasst: 25.10.2005 23:02
von Kaeru Gaman
nunja.. ist vielleicht auch eher ne stil-frage..
aber wenn ich Break vermeide, dann gewöhne ich mir an,
immer code so zu proggen daß ich beachte, was danach kommt...
wenn ich Break verwende, könnte ich mir angewöhnen, eine nach-mir-die-sintflut-haltung anzugewöhnen...
aber ich kann zum beispiel in ner schleife ne abbruchbedingung auf
reduzieren.
und dann setze ich in die schleife einfach EXIT = 1 statt break.
Verfasst: 26.10.2005 01:22
von zigapeda
@kaeru
deine methode (die ich auch meistens nehm auser wenns nicht anderst geht) ist laut dem code die langsamere:
http://forums.purebasic.com/german/view ... 9767#59767
Verfasst: 26.10.2005 01:35
von Kaeru Gaman
ja logisch, weil ja der rest der schleife noch bearbeitet wird...
aber bei ner abbruch-bedingung die ausführungszeit testen... hallo, gehts noch?
btw.. stell dir vor du hast geschachtelte schleifen...
kommst du da noch klar, wo dein Break dann weitermacht?
Verfasst: 26.10.2005 06:51
von Danilo
Kaeru Gaman hat geschrieben:aber bei ner abbruch-bedingung die ausführungszeit testen... hallo, gehts noch?
Wenn man es genau nimmt, dann braucht Deine Methode auch
noch eine Variable extra.

Dazu wird diese Variable bei jedem Schleifendurchlauf überprüft,
was bei einem 'Forever' nicht nötig ist. Aber auch das macht
nicht wirklich viel aus.
Kaeru Gaman hat geschrieben:btw.. stell dir vor du hast geschachtelte schleifen...
kommst du da noch klar, wo dein Break dann weitermacht?
Es wird immer die innerste Schleife (For, Repeat, ForEach, While)
abgebrochen, in der das Break steht. Optional kann man einen
Parameter angeben, aus wievielen Schleifen rausgesprungen
werden soll. Bei einer 5-fachen Verschachtelung kann man
bei einem Fehler also mit 'Break 5' sauber und schnell
rausspringen.
Genauso bei Continue: Da wird in der innersten Schleife, in
der es steht, der nächste Schleifendurchlauf gestartet.
Eigentlich ganz einfach.
Verfasst: 26.10.2005 11:30
von nco2k
ich finde Break sehr praktisch, vorallem weil die schleife sofort verlassen und nicht zuende ausgeführt wird. manchmal ist diese methode besser, manchmal die andere. kommt immer auf die situation an.
c ya,
nco2k