Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Schleife stürzt ab
takuan - Mo 14.10.02 21:52
Titel: Schleife stürzt ab
Sorry, bin noch ein ziemlich Newbie, wahrscheinlich bin ich einfach zu dumm*g*
will mir ein simples würfelprogramm schreiben und brauche eine schleife, damit die null nicht vorkommt, ich habe es mit der while und der repeat-schleife probiert,aber bei beiden stürzt das programm ab...
kann mir einer sagen warum?
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31:
| procedure TForm1.Button1Click(Sender: TObject); const z=7; var a,b,c,d,e : Real; begin a := strtofloat(edit1.text); b := strtofloat(edit2.Text); c := strtofloat(edit3.Text); d := strtofloat(edit4.Text); e := strtofloat(edit5.text); edit1.text := inttostr(random(z)); edit2.text := inttostr(random(z)); edit3.text := inttostr(random(z)); edit4.text := inttostr(random(z)); edit5.text := inttostr(random(z)); repeat edit1.text := inttostr(random(z)); until a>0; repeat edit2.text := inttostr(random(z)); until b>0; repeat edit3.text := inttostr(random(z)); until c>0; repeat edit4.text := inttostr(random(z)); until d>0; repeat edit5.text := inttostr(random(z)); until e>0;
end; |
wenn ich die schleife nicht drinhab, läuft es...
Christian S. - Mo 14.10.02 22:10
Hi!
Die Abbruchbedingung der Schleife bezieht sich auf einen Wert, der sich während des Schleifendurchlaufs gar nicht ändert! D.h. hierbei:
Quelltext
1: 2: 3:
| repeat edit1.text := inttostr(random(z)); until a>0; |
bleibt a unverändert. War es am Anfang kleiner oder gleich Null, wird es dass bis in alle Ewigkeit bleiben, weil es sich während der Schleife nicht ändert und diese auch keine VEranlassung hat abzubrechen.
Aber Du brauchst die Schleifen gar nicht. Wenn die Null nicht vorkommen soll, verminderst Du das Argument, welches du momentan in der Randomfunktion hast, um eins und addierst eins zur erzeugten Zufallszahl hinzu. Damit erhälst Du immer einen Wert, der größer oder gleich eins ist.
MfG,
Peter
takuan - Mo 14.10.02 22:19
stimmt, das is ja noch besser*g*
donkschön!
gruß takuan
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!