AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Unterschied While-Schleife <-> RepeatUntil-Schleife
Thema durchsuchen
Ansicht
Themen-Optionen

Unterschied While-Schleife <-> RepeatUntil-Schleife

Ein Thema von Crattely · begonnen am 26. Sep 2012 · letzter Beitrag vom 7. Mär 2013
Antwort Antwort
Benutzerbild von Maya
Maya

Registriert seit: 15. Jun 2011
Ort: Potsdam-Mittelmark
107 Beiträge
 
Delphi 2010 Enterprise
 
#1

AW: Unterschied While-Schleife <-> RepeatUntil-Schleife

  Alt 27. Sep 2012, 05:58
Du könntest doch einfach ein kleines Progi machen, mit einen Edit-Feld, wo du Zahlen eingibst und zwei Labels, eine für die WHILE-Schleife und eine für die REPEAT-Schleife.

Beim Knöpfchen-Drücken, werden dann die Schleifen mit der eingegebenen Zahl ausgeführt. In den zwei Labels wird dann angezeigt, wie oft die Schleife ausgeführt wurde. Wenn die Schleife

Ich hab da mal was vorbereitet: (bitte das jetzt mit der legendären Jean Pütz-Stimme vorstellen)

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var Zahl: Integer;
    Beschriftung: String;
begin
  if Trim(Edit1.Text)<>'then
    begin
      Zahl:=StrToInt(Edit1.Text);
      While Zahl<10 do
        begin
          Beschriftung:=lblWhile.Caption+#10#13+IntToStr(Zahl);
          lblWhile.Caption:=Beschriftung;
          Zahl:=Zahl+1;
        end;

      Zahl:=StrToInt(Edit1.Text);
      Repeat
        Beschriftung:=lblRepeat.Caption+#10#13+IntToStr(Zahl);
        lblRepeat.Caption:=Beschriftung;
        Zahl:=Zahl+1;
      Until Zahl<10;
    end;
end;

Ich weiß jetzt nicht, welches Delphi du nimmst, ggf. musst du bei dem Edit halt einstellen, dass da nur Zahlen 'reindürfen (NumbersOnly) oder halt kurz was kleines Schreibseln, dass da nur Zahlen 'rein können.

EDIT: Mir fällt gerade auch auf, dass bei der REPEAT-Schleife sich bei Zahlen, die größer als 10 sind, eine Endlosschleife bildet. Ich war schon immer Meisterin der Endlosschleifen. -.- Ich schau mal, ob ich das behoben bekomme.
Status:
- FIAE
- Rechteinhaberin, ein Rüsselmops sein zu wollen

Geändert von Maya (27. Sep 2012 um 06:05 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#2

AW: Unterschied While-Schleife <-> RepeatUntil-Schleife

  Alt 27. Sep 2012, 06:42
Bei Zahlen kleiner Zehn hast Du auch eine Problem bei Deiner Repeatschleife
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von Maya
Maya

Registriert seit: 15. Jun 2011
Ort: Potsdam-Mittelmark
107 Beiträge
 
Delphi 2010 Enterprise
 
#3

AW: Unterschied While-Schleife <-> RepeatUntil-Schleife

  Alt 27. Sep 2012, 06:47
Bei Zahlen kleiner Zehn hast Du auch eine Problem bei Deiner Repeatschleife
Nein, wieso? Er führt sie einmal aus und dann war's das. Hab es eigentlich mehrmals getestet.

Nicht gleich schreien: ich teste noch mal!

EDIT: Er führt die bei mir genau einmal durch. Da sieht man doch den gewünschten Unterschied.
Status:
- FIAE
- Rechteinhaberin, ein Rüsselmops sein zu wollen

Geändert von Maya (27. Sep 2012 um 06:50 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#4

AW: Unterschied While-Schleife <-> RepeatUntil-Schleife

  Alt 27. Sep 2012, 06:58
das hast Du:
Delphi-Quellcode:
var
zahl:Integer;
begin
      Zahl:=1;
      Repeat
        Memo1.lines.Add(IntToStr(Zahl));
        Zahl:=Zahl+1;
      Until Zahl<10;
end;
das schätze ich meinst Du, wenn man von einer Schleife sprechen will (oder ich verstehe Dein Beispiel nicht):
Delphi-Quellcode:
var
zahl:Integer;
begin
      Zahl:=1;
      Repeat
        Memo1.lines.Add(IntToStr(Zahl));
        Zahl:=Zahl+1;
      Until Zahl>10;
end;
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: Unterschied While-Schleife <-> RepeatUntil-Schleife

  Alt 27. Sep 2012, 06:59
@Maya

Das ist der weitere besondere Unterschied zwischen den Schleifen
  • WHILE => Start-Bedingung ( i < 10 )
  • REPEAT => Abbruch-Bedingung not ( i < 10 ) oder ( i >= 10 )
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.342 Beiträge
 
Delphi 12 Athens
 
#6

AW: Unterschied While-Schleife <-> RepeatUntil-Schleife

  Alt 27. Sep 2012, 09:09
Das ist der weitere besondere Unterschied zwischen den Schleifen
  • WHILE => Start-Bedingung ( i < 10 )
  • REPEAT => Abbruch-Bedingung not ( i < 10 ) oder ( i >= 10 )
Bei REPEAT wird erst der Schleifeninhalt ausgeführt und dann die Abbruchbedingung (eigentlich die Fortzetzungsbedingung) gebrüft,
bei WHILE ein True = Ausführen
bei REPEAT UNTIL ein True = Abbrechen

Man kann es sich auch ganz einfach merken:
True = gehe zum nächsten Befehl (meist die nächste Quellcodezeile)
- WHILE = geh in die nachfolgende Schleife rein
- REPEAT = geh aus der vorherigen Schleife raus
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von Maya
Maya

Registriert seit: 15. Jun 2011
Ort: Potsdam-Mittelmark
107 Beiträge
 
Delphi 2010 Enterprise
 
#7

AW: Unterschied While-Schleife <-> RepeatUntil-Schleife

  Alt 27. Sep 2012, 09:10
Ich denke, das kann man drehen und wenden wie man will, wenn man es nur zur Veranschaulichung nutzen möchte und es keinen direkten Nutzen/Zweck/Ziel hat.

Beide Versionen zeigen, dass diese Schleifen unterschiedlich funktionieren.
Status:
- FIAE
- Rechteinhaberin, ein Rüsselmops sein zu wollen
  Mit Zitat antworten Zitat
Benutzerbild von Jonas Shinaniganz
Jonas Shinaniganz

Registriert seit: 30. Aug 2011
249 Beiträge
 
Delphi XE5 Ultimate
 
#8

AW: Unterschied While-Schleife <-> RepeatUntil-Schleife

  Alt 27. Sep 2012, 14:01
Also für die Schule würde Ich vielleicht ein Beispiel bringen, welches richtig schön anschaulich ist.

Dazu verwendest du am besten stimmige Variablennamen:

Beispiel:

In ein Fass können 10 Eimer Wasser gefüllt werden.
Das Fass darf nicht überlaufen und muss gefüllt werden.

Delphi-Quellcode:
var
  FassIstVoll : Boolean;

While not(FassIstVoll) do
  KippeEimerRein;

repeat
  KippeEimerRein;
until(FassIstVoll)
Wenn das Fass mit 10 Eimern gefüllt ist, würdest du in der repeat Schleife einen Eimer rein kippen, dann würde das Fass überlaufen. In der While Schleife würde dies nicht passieren, weil du zuerst überprüfst ob die Bedingung TRUE ergibt.

Grüße
Die Leiter der Entwicklungsabteilung dreht total am Mausrad!
  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 14:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz