AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Unterschied While - Do-While

Ein Thema von Blumi · begonnen am 21. Sep 2008 · letzter Beitrag vom 21. Sep 2008
Antwort Antwort
Benutzerbild von Blumi
Blumi

Registriert seit: 11. Jul 2005
Ort: Basel
96 Beiträge
 
Delphi 2005 Personal
 
#1

Unterschied While - Do-While

  Alt 21. Sep 2008, 10:17
Hi zusammen

Könnt ihr mir mal kurz erklären was der Unterschied zwischen der While und der Do-While Schleife ist?
Code:
while (i < 12) {
   i++;
}
Code:
do {
   i++;
} while (i < 12);
Meines Erachtens machen beide Codes genau das gleiche. Das obere ist wahrscheinlich eher Fussgesteuert und das untere Kopfgestuert.
Aber ich begreife nicht wieso es beide Möglichkeiten gibt Oo.. Eine reicht doch oder gibt es typisches wo die einte eher gebraucht wird?

Hoffe ihr könnt mich ein wenig aufklären..

Lg
  Mit Zitat antworten Zitat
Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#2

Re: Unterschied While - Do-While

  Alt 21. Sep 2008, 10:21
Der Unterschied liegt darin, dass bei do..while der Code in der SChleife mindestens einmal aufgerufen wird, unabhängig von der Bedingung.
Bei while kann es sein, dass der Code nie aufgerufen wird.

setz einfach i auf 12 und schau dir das Ergebniss beider Schleifen an.
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Unterschied While - Do-While

  Alt 21. Sep 2008, 10:21
Guten Morgen,

nein, die Codes machen nicht das gleiche.

Code:
do {
   i++;
} while (i < 12);
hier wird der Code im Rumpf der Schleife mindestens einmal ausgeführt.
Diese Art von Schleife nennt man auch Fussgesteuerte Schleifen.

Bei der anderen Schleife wird
im Schleifenkopf die Entscheidung getroffen ob der Schleifenrumpf ausgeführt werden soll.
Diese Schleifen nennt man auch Kopfgesteuerte Schleifen.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#4

Re: Unterschied While - Do-While

  Alt 21. Sep 2008, 10:21
Hallo

Bei der while-Schleife wird zuerst eine Bedinung überprüft und wenn die Bedinung erfüllt ist, wir in die Schleife gegangen.

Bei der do..While-Schleife wird der Code in der Schleife auf jeden Fall mindestens ein Mal ausgeführt.
Thomas
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Unterschied While - Do-While

  Alt 21. Sep 2008, 10:22
Zitat:
Meines Erachtens machen beide Codes genau das gleiche. Das obere ist wahrscheinlich eher Fussgesteuert und das untere Kopfgestuert.
Gerade anders herum
Das 2. ist eine Repeat-Schleife
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Blumi
Blumi

Registriert seit: 11. Jul 2005
Ort: Basel
96 Beiträge
 
Delphi 2005 Personal
 
#6

Re: Unterschied While - Do-While

  Alt 21. Sep 2008, 10:27
Hi zusammen

Danke vielmals für eure schnellen Antworten.

Nach eurem Beispiel ist es mir logisch geworden, dass die while Schleife nicht unbedingt ausgeführt werden muss..

Mfg
  Mit Zitat antworten Zitat
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.858 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Unterschied While - Do-While

  Alt 21. Sep 2008, 10:47
Hallo Blumi,
unter Delphi gibt es für die beiden Schleifen unterschiedliche Schlüsselwörter: Repeat, while ;
Bei
Delphi-Quellcode:
While (<Ausdruck>)
{
  Block
}
Wie zuerst ein Eingangstest durchgeführt, ob die Schleife abgearbeitet wird.

Bei
Delphi-Quellcode:
do
{
  Block
}

While (<Ausdruck>)
Wir einen Ausgangstest durchgeführt, ob die Schleife verlassen wird.
Bei do/while gibt es min. einen Schleifendurchlauf, denn man muss ja erst zum Bedingungsausdruck kommen.
Diese Schleife sollte man dann einsetzen, wenn innerhalb der Schleife sich Werte ändern.

Bei der while-Schleife müssen die Variablen die die im Ausdruck stehen schon einen Wert haben.
Liefert die Eingangsbedingung= FALSE, so wird die Schleife nicht einmal durchgeführt.
Mit diesem Schleifentyp kann man falsche Variable-Werte abfangen, bevor sie in der Schleife abgearbeitet werden.

Habe etwas lange gebraucht. Das meiste wurde ja schon erläutert.

Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:54 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz