Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Fehler: Endlosschleife
luckyluc - Fr 22.05.09 14:19
Titel: Fehler: Endlosschleife
Hallo!
in der while-schleife (siehe pas-datei) befindet sich eine endlosschleife, obwohl ja eigentlich einne abbruchbedingung gegeben ist. kann mir jmd. den fehler zu finden?
danke!
Moderiert von
Narses: Topic aus Sonstiges (Delphi) verschoben am Fr 22.05.2009 um 14:26
Xentar - Fr 22.05.09 14:21
Könntest du bitte den relevanten Sourcecode hier ins Forum schreiben? (Delphi Tags nicht vergessen)
Michael Stenzel - Fr 22.05.09 14:48
Hi luckyluc.
Hier dein Source:
Delphi-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:
| procedure TForm1.Button1Click(Sender: TObject); var i: integer; begin spalten := spinedit1.Value; i:= 1; laenge:= length(edit1.text); while (laenge mod spalten) <> 0 do edit1.Text:= edit1.Text + '@'; for zeile := 1 to (laenge div spalten) do begin for spalte := 1 to spalten do begin matrix[zeile,spalte]:= edit1.text[i]; inc(i); end; end;
edit2.text:= ''; while (laenge mod spalten) <> 0 do edit1.Text:= edit1.Text + '@'; for spalte := 1 to spalten do begin for zeile := 1 to (laenge div spalten) do begin edit2.text:= edit2.Text+matrix[zeile,spalte]; end; end; end; |
In deiner While-Schleife werden die Variablen laenge und spalten nicht verändert. Deshalb können die Schleifen nicht enden.
Gruß
Michael.
luckyluc - Fr 22.05.09 14:55
danke, nur die spalten sollen sich ja nicht ändern, die laenge ändert sich doch eigentl. automatisch, denn wenn ein zeichen hinzugefügt wird, ist die laenge doch verändert. oder nicht?
Gausi - Fr 22.05.09 15:00
Die Variable laenge wird aber nicht verändert, nur weil sich der String verändert, mit dessen Länge die Variable anfangs gefüllt wurde. ;-)
Xentar - Fr 22.05.09 15:00
luckyluc hat folgendes geschrieben : |
| danke, nur die spalten sollen sich ja nicht ändern, die laenge ändert sich doch eigentl. automatisch, denn wenn ein zeichen hinzugefügt wird, ist die laenge doch verändert. oder nicht? |
Nö, weil du Laenge nur einmal ganz am Anfang setzt (Zeile 7), aber nicht mehr innerhalb der Schleife.
luckyluc - Fr 22.05.09 15:08
ach ja klar, wie logisch. danke an alle.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 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!