![]() |
in repeatschleife zum anfang der schleife springen
Hi,
Einfch Frage: Wie kann man in einer repeatschleife zum anfang der schleife springen, wenn man nciht will, das until erreicht wird... z.b.:
Delphi-Quellcode:
Ich hoffe ihr versteht was ich emine!!
repeat// <___________________
button1.Caption := '1'; // \ nummer := nummer +1; // | if nummer = nummer1 then// | //zum anfang springen _______/ until bla = bla2; DANKE |
Re: in repeatschleife zum anfang der schleife springen
ich verstehe den sinn nicht ganz!
was hast du denn vor? das die schleife noch einmal ausgeführt wird? |
Re: in repeatschleife zum anfang der schleife springen
Hallo!
Das sollte sich mit "continue;" machen lassen. MfG Peter |
Re: in repeatschleife zum anfang der schleife springen
Diese Go To's bzw. continues sind eigentlich ziemlich unsauber- finde ich zumindest (schlecht lesbar,...). Eigentlich kann man auch alles so lösen. Kann mich jetzt nur meinem Vorredner anschließen, was hast du vor?
|
Re: in repeatschleife zum anfang der schleife springen
und wie macht manndas wenns so is:?
Delphi-Quellcode:
repeat
... repeat ... //von hier zum ersten repeat until... until... |
Re: in repeatschleife zum anfang der schleife springen
wieso?
wenn die Bedingung der inneren Schleife erfüllt ist dann fängst du doch in der äußeren wieder oben an! Du mußt doch nur die Bedingungen richtig definieren! Oder was verstehe ich falsch :?: |
Re: in repeatschleife zum anfang der schleife springen
Delphi-Quellcode:
hier der code.. guckt mal durch
repeat
maxiEng := FormVocsEng.TableEng.RecordCount; inc(maxiEngCount); if maxiEngCount = maxiEng then if MessageDlg('Anzahl der abzufragenden Vokabeln nicht erreicht,'+#10#13+ 'weil nicht genügend Vokabeln verfügbar sind.',mtInformation,[mbOK],0) = mrOK then begin //kommt noch end; FormVocsEng.TableEng.first; maxiEng := FormVocsEng.TableEng.RecordCount; randomize; zufallszahl := random(maxiEng); repeat FormVocsEng.TableEng.next; inc(SollZahl); until SollZahl = zufallszahl; DataSet[datenumber] := FormVocsEng.TableEng.FieldByName('Englisch').AsString; repeat dec(dateproof); if DataSet[dateproof] = DataSet[datenumber] then //wenn dateproof = datenumber dann repeat von vorne until dateproof = 0; until dateproof = 0; end; es soll dannn zum erste repeat gesprungen werden |
Re: in repeatschleife zum anfang der schleife springen
Zitat:
Delphi-Quellcode:
dann wird die schleife beendet und du fängst in der anderen wieder an.
repeat
dec(dateproof); until(DataSet[dateproof] = DataSet[datenumber]); |
Re: in repeatschleife zum anfang der schleife springen
Zitat:
--------------- ich benutze sprünge auch manchmal, wenns nämlich so kompliziert in der schleife werden würde, dass man nicht mehr durchsieht, und der Algorithmus dadurch unleserlich werden sollte. Das wichtigste ist immer noch das Verstehen des Textes durch den MEnschen, nicht ob nun Sprünge nicht schön oder unsauber sein sollen, meine Meinung :-) also der befehl continue springt zum ende der schleife. in der repeat schleife hätte das sicherlich Deinen Sinn den Du willst. in einer For Schleife bewirkt continue dass er halt zum ende springt und mit dem nächsten "i" weitermacht. break springt zum Ende der gesamten schleife und beendet diese komplet. Exit springt zum ende der ganze Procedure :-) manuelle sprungmarken: Procedure test; var i : integer; label Sprungmarke; begin repealt Sprunmarke: a := a +b; if a = 10 then goto sprungmarke; until sonstwas; Gruß |
Re: in repeatschleife zum anfang der schleife springen
irgend wie funktioniert das nich mit dem goto...
jannst du mir mal die genauen befehle sagen? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:52 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 by Thomas Breitkreuz