Autor Beitrag
WeBsPaCe
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 2322
Erhaltene Danke: 1

FireFox 3, Internet Explorer 6 SP1
D1, D3Prof, D6Pers, D7Pers+Indy, VisualStudio Express
BeitragVerfasst: So 24.04.05 17:53 
Moin... ;) :D

Die Frage klingt jetzt gleich etwas komisch, aber ich kann's ganz einfach erklären. ;) Aber erstmal die Frage:

Welche Variable erreicht nie einen bestimmten Wert. Also z.B. hier:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
var
b: Boolean;
begin
repeat b := False until b = True;
end;

wird b nie zu True. Also bekomm' ich eine Endlosschleife. Welchen Wert kann ich da nehmen, der sich z.B. nie ändert.

Mein Ziel ist es einfach, eine Endlosschleife (!!!) laufen zu lassen. Und zwar eine repeat-until-Schleife. Und jetzt muss ich natürlich dann bei until was stehen haben, was nie stimmt. Jetzt könnte ich das zwar genauso machen wie's da oben steht, aber ich hätt's gern eleganter. ( <-- wieder ein Beweis für meine "Verrücktheit" :mrgreen: )

Ich hab' jetzt sowas:
ausblenden Delphi-Quelltext
1:
repeat until False;					


Stimmt das? Kann ich das so verwenden? Überprüft das until einfach, ob die Bedingung dahinter True ist? Dann würde das ja stimmt oder?

Danke schonmal. ;)
Karlson
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 2088



BeitragVerfasst: So 24.04.05 18:00 
Kapier ich nicht :lol:

Wenn du b nie veränderst wird das auch die Schleife nicht kümmern.

Naja, was sehr elegant wäre, wäre vermutlich das hier:

ausblenden Delphi-Quelltext
1:
2:
repeat blablabla;
 until 1=2;


;)

Im ernst, nimm doch für die Endlosschleife einen Thread, der lässt sich imho besser steuern.
WeBsPaCe Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 2322
Erhaltene Danke: 1

FireFox 3, Internet Explorer 6 SP1
D1, D3Prof, D6Pers, D7Pers+Indy, VisualStudio Express
BeitragVerfasst: So 24.04.05 18:08 
user profile iconKarlson hat folgendes geschrieben:
Kapier ich nicht :lol:

Hab ich mir fast gedacht... ;)

user profile iconKarlson hat folgendes geschrieben:
Wenn du b nie veränderst wird das auch die Schleife nicht kümmern.

Wie jetzt? :gruebel:

user profile iconKarlson hat folgendes geschrieben:
Naja, was sehr elegant wäre, wäre vermutlich das hier:
ausblenden Delphi-Quelltext
1:
2:
repeat blablabla;
 until 1=2;

Stimmt. Daran hab ich noch gar nicht gedacht. :lol:

user profile iconKarlson hat folgendes geschrieben:
Im ernst, nimm doch für die Endlosschleife einen Thread, der lässt sich imho besser steuern.

Das ist "mit Spatzen auf Kanonen geschossen" oder so... :mrgreen:
Das soll nur eine 50-Zeilen-Konsolenanwendung werden. ;)
maxk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1696
Erhaltene Danke: 1

Win XP, Debian Lenny
Delphi 6 Personal
BeitragVerfasst: So 24.04.05 18:14 
user profile iconWeBsPaCe hat folgendes geschrieben:
Ich hab' jetzt sowas:
ausblenden Delphi-Quelltext
1:
repeat until False;					


Stimmt das? Kann ich das so verwenden?
Das wäre eine Endlosschleife. Bei until und while werden Bedingungen überprüft. 1=2 ist immer falsch. 1=2 ist aber auch immer false. Daher ist until false eine Endlosschleife (besser kriege ich es nicht erklärt). Ich würde dir aber empfehlen für deine Endlosschleife mit
ausblenden Delphi-Quelltext
1:
2:
while True do begin
end;
zu arbeiten, dann erkennt man gleich, dass es eine Endlosschleife ist.

Zitat:
Und zwar eine repeat-until-Schleife.
Das ist bei ner Endlosschleife eigentlich egal, da der Code zwischen Anfang und Ende wiederholt wird - egal, ob am Anfang oder am Ende geprüft wird ;)

Gruß,
maxk

_________________
Ein Computer wird das tun, was Du programmierst - nicht das, was Du willst.
WeBsPaCe Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 2322
Erhaltene Danke: 1

FireFox 3, Internet Explorer 6 SP1
D1, D3Prof, D6Pers, D7Pers+Indy, VisualStudio Express
BeitragVerfasst: So 24.04.05 18:20 
user profile iconmaxk hat folgendes geschrieben:
Das wäre eine Endlosschleife. Bei until und while werden Bedingungen überprüft. 1=2 ist immer falsch. 1=2 ist aber auch immer false. Daher ist until false eine Endlosschleife (besser kriege ich es nicht erklärt).

Hat schon gereicht. :D

user profile iconmaxk hat folgendes geschrieben:
Ich würde dir aber empfehlen für deine Endlosschleife mit
ausblenden Delphi-Quelltext
1:
while True do begin end;					

zu arbeiten, dann erkennt man gleich, dass es eine Endlosschleife ist.

*g* Hab ich jetzt so ähnlich:
ausblenden Delphi-Quelltext
1:
while 0 = 0 do (...)					


user profile iconmaxk hat folgendes geschrieben:
Das ist bei ner Endlosschleife eigentlich egal, da der Code zwischen Anfang und Ende wiederholt wird - egal, ob am Anfang oder am Ende geprüft wird ;)

Weiß ich. ;) Aber irgendwie find ich repeat-until-Schleifen schöner als while-do... :lol:

^^bin halt verrückt... :mrgreen:

Also nochmal DANKE an euch alle! :D