Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi in repeatschleife zum anfang der schleife springen (https://www.delphipraxis.net/16113-repeatschleife-zum-anfang-der-schleife-springen.html)

PhöniX 10. Feb 2004 15:19


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:
repeat// <___________________
button1.Caption := '1'; //   \
nummer := nummer +1;   //   |
if nummer = nummer1 then//   |
//zum anfang springen _______/
until bla = bla2;
Ich hoffe ihr versteht was ich emine!!
DANKE

MikeS 10. Feb 2004 15:21

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?

Christian S. 10. Feb 2004 15:27

Re: in repeatschleife zum anfang der schleife springen
 
Hallo!

Das sollte sich mit "continue;" machen lassen.

MfG
Peter

Tpercon 10. Feb 2004 15:29

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?

PhöniX 10. Feb 2004 15:32

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...

MikeS 10. Feb 2004 15:34

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 :?:

PhöniX 10. Feb 2004 15:39

Re: in repeatschleife zum anfang der schleife springen
 
Delphi-Quellcode:
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;
hier der code.. guckt mal durch
es soll dannn zum erste repeat gesprungen werden

MikeS 10. Feb 2004 15:42

Re: in repeatschleife zum anfang der schleife springen
 
Zitat:

repeat
dec(dateproof);
if DataSet[dateproof] = DataSet[datenumber] then
//wenn dateproof = datenumber dann repeat von vorne
until dateproof = 0;
versuche es doch mal so

Delphi-Quellcode:
repeat
  dec(dateproof);
until(DataSet[dateproof] = DataSet[datenumber]);
dann wird die schleife beendet und du fängst in der anderen wieder an.

stoxx 10. Feb 2004 15:47

Re: in repeatschleife zum anfang der schleife springen
 
Zitat:

Zitat von PhöniX
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:
repeat// <___________________
button1.Caption := '1'; //   \
nummer := nummer +1;   //   |
if nummer = nummer1 then//   |
//zum anfang springen _______/
until bla = bla2;
Ich hoffe ihr versteht was ich emine!!
DANKE


---------------

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ß

PhöniX 10. Feb 2004 16:40

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 21:05 Uhr.
Seite 1 von 2  1 2      

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