Sonja: While schleife durch For schleife ersetzten

Hallo,

ich habe eine Funktion, die ich gerne durch maximal 10 Ausgaben beschränken möchte. Bevor ich jetzt aber einen Count / Brake einbaue habe ich überlegt eine FOR schleife daraus zu bauen:

function Replace(totalValue,oldValue,newValue)  
{  
	while(totalValue.indexOf(oldValue) > -1)  
		totalValue=totalValue.replace(oldValue,newValue);  
			return totalValue;  
}

Nur kann ich ja nicht einfach das while durch for ersetzen sonder muss eine Bedingung anknüpfen. Ich habe mir die Doku unter: http://www.selfhtml.net/javascript/sprache/schleifen.htm zwar schon angesehen, verstehe aber nicht wie ich es anknüpfen könnte.

Es wäre super wenn mir jemand helfen könnte.

Danke Sonja

  1. ....10  Ausgaben beschränken möchte.

    Hallo Sonja,
    An welcher Stelle in deiner Funktion gibst du den etwas aus?

    Ist der Sinn deiner Funktion ein einfaches suchen und ersetzten?
    Dann sollte sie so eigentlich funktionieren.

    Nebenbei ein Beispiel für eine for Schleife die 10 Durchläufe macht:

      
    for(i=0; i<10; i++)  
      alert(i);  
    
    

    Gruss Timo

    1. Hallo Timo,

      danke das hat schon gereicht.

      Gruß

      Sonja

  2. Hi,

    ich habe eine Funktion, die ich gerne durch maximal 10 Ausgaben beschränken möchte. Bevor ich jetzt aber einen Count / Brake einbaue habe ich überlegt eine FOR schleife daraus zu bauen

    das ist in dem Fall sicher eine gute Möglichkeit. Grundsätzlich sind for- und while-Schleifen austauschbar; es hängt aber vom Kontext ab, was jeweils günstiger ist.

    Eine "typische" for-Schleife könnte so aussehen:

    for (var z=0; z<10; z++)
       { DoSomething();
       }

    Das lässt sich -etwas umständlicher- exakt in eine while-Schleife umbauen:

    var z=0;
      while (z<10)
       { DoSomething();
         z++;
       }

    Daran siehst du schon, dass die for-Schleife tatsächlich praktischer ist, wenn man mit einer Zählvariablen arbeitet, die man zu Beginn auf einen Startwert setzen und mit jedem Durchlauf hochzählen muss.

    Nur kann ich ja nicht einfach das while durch for ersetzen sonder muss eine Bedingung anknüpfen.

    Ja. Du musst die in der obigen als Beispiel notierten for-Schleife die Bedingung (hier: z<10) noch mit deiner schon vorhandenen Bedingung verknüpfen. Du willst die Schleife laufen lassen, solange z<10 ist *und* deine bisherige Schleifenbedingung erfüllt ist.

    Das bekommst du hin, oder?

    So long,
     Martin

    --
    Um mit einem Mann glücklich zu werden, muss eine Frau ihn sehr gut verstehen und ein bisschen lieben.
    Um mit einer Frau glücklich zu werden, muss ein Mann sie sehr lieben und darf gar nicht erst versuchen, sie zu verstehen.