Einzelnen Beitrag anzeigen

Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#10
  Alt 5. Mär 2003, 19:55
Code:
repeat
    zeichen := Copy(s, 1, 1);
    nick := nick + zeichen;
    while s[1] <> ' ' do
    delete(s, 1, 1);
until s = '';
1. Repeat und While Schleifen zu mischen macht alles von der Logik her schwerer verständlich.

2. Was macht deine Variable Zeichen Die ist lokal deklariert und wird nicht benutzt. Doch, sie wird ja doch benutzt, aber Dein Nick nicht. Ja, das meinte ich mit schwer verständlich. Da sieht man mal wie man mit 3 Variablen und 2 Schleifen in die Irre geleitet wird. Deshalb heute nicht mehr. Nur noch soviel:

Wegen der Lesbarkeit verwende ich auch lieber mehr Variablen als weniger, aber dieses Bsp. ist ein klassischer Fall wie mans nicht machen sollte (meiner Meinung nach).

TIP: Übernehme mein Beispiel 1:1 und setze innerhalb der Repeat und While Schleifen direkt unter das delete (st,1,1) ein
Code:
ShowMessage
Bei mir ist noch ein Fehler, aber der ist schnell gefunden, hoffentlich aber von Dir.

Die While Schleife würde dann so aussehen:
Code:
while s[1] <> ' ' do begin
  delete(s, 1, 1);
  showmessage ('*'+st+'*');
end;
Dann siehst Du genau was passiert. Auch die ** machen einen Sinn, zumindest wenn man mit Lerzeichen hantiert.
Gruß
Hansa
  Mit Zitat antworten Zitat