While schleife und for schleife javascript

  • Wo besteht der unterschied zwischen einer while schleife und einer for schleife

    und wie programmiert man sie?

    vielen dank im voraus

    • Offizieller Beitrag

    Hi,
    eine while-Schleife wird solange ausgeführt, bis eine bestimmte Bedingung erfüllt wird (z.B. bis man einen noch nicht belegten Dateinamen gefunden hat), während bei einer for-Schleife i.d.R. ein Zähler hoch/runtergezählt wird und bei einer bestimmten Anzahl an Durchläufen abgebrochen wird (z.B. um Arrays zu durchlaufen).
    Bei der while-Schleife ist dir also im vorhinhein nicht klar, wie oft diese durchlaufen werden muss, während man das bei einer for-Schleife absehen können sollte.

    Wie man solche Schleifen in JavaScript verwendet, siehe:
    http://de.selfhtml.org/javascript/sprache/schleifen.htm

    LG nif7

    Menschen, die etwas wollen, finden Wege. Menschen, die etwas nicht wollen, finden Gründe.

  • Versteh ich das richtig , dass man bei einer While-Schleife

    dann auch if und else benutzen muss?

    Ich bin nur etwas verwirrt

    wir haben dazu ein Programm programmiert, da konnte man aber for und while verwenden.

  • Eine while-Schleife wird ausgeführt solange eine Bedingung erfüllt ist.

    Beispiel:

    Code
    var foo = "Something to loop through";
    var ooo = 0;
    var i = 0;
    while(i < foo.length) {
        if (foo.charAt(i) == 'o') { ooo++; }
        i++;
    }

    Das hier zählt wie oft der Buchstabe 'o' in dem String foo vorkommt.
    Ich deklariere drei Variablen:
    foo enthält die Zeichenkette.
    ooo soll die Anzahl des Buchstaben 'o' zählen. Vor dem Zählen ist diese Variable deshalb 0 und nach dem Zählen enthält sie die Anzahl an kleinen o's.
    i bestimmt welchen Buchstaben ich prüfen will.

    Dieses Programm prüft jeden Buchstaben in der Zeichenkette ob es ein o ist und erhöht gegebenenfalls den Zähler. Da der erste Buchstabe an Position 0 ist muss ich i auch bei 0 beginnen lassen. Die Schleife wird so lange ausgeführt bis i gleich der Länge der Zeichenkette ist. Da bei 0 angefangen wird ist dort der String schon zu ende. Damit man auch irgendwann zum Ende kommt wird i in jedem Durchlauf um eins erhöht.

    Diese Art der Schleife, bei der man einen Zähler mit einem Wert belegt, dann in jedem Durchlauf prüft, ob die Bedingung noch erfüllt wird, und am Ende jedes Durchlaufs den Zähler verändert ist sehr häufig. Deshalb wurde für diesen Fall die for-Schleife erfunden. Das gleiche Programm* mit einer for-Schleife sieht so aus:

    Code
    var foo = "Something to loop through";
    var ooo = 0;
    for(var i=0; i < foo.length; i++) {
        if (foo.charAt(i) == 'o') { ooo++; }
    }

    Wie du siehst enthält das im Prinzip genau den gleichen Code, nur der Name der Schleife ist anders und der Ort, an dem var i=0 und i++ stehen sind anders. Eine for-Schleife sorgt dafür, dass diese beiden Befehle genau an der richtigen Stelle ausgeführt werden.

    [code]for (init; bedingung; iterate);[/quote]
    Die For-Schleife führt das Kommando init genau ein einziges Mal vor dem Betreten der Schleife aus. Dieses Kommando wird garantiert ausgeführt.
    Dann wird vor jedem Schleifendurchlauf getestet ob bedingung einen Wert zurückgibt, der als true interpretiert werden kann. Das Kommando bedingung wird also mindestens ein Mal ausgeführt.
    Am Ende jedes Schleifendurchlaufs wird iterate ausgeführt und dann beginnt sofort der nächste Schleifendurchlauf.

    Eine for-Schleife ist eine besonder Form der while-Schleife.

    * Ganz exakt gleich sind die Programme nicht. Im Beispiel mit der while-Schleife kann man die Variable i auch nach der Schleife noch auslesen. Im Beispiel mit der for-Schleifekann man später nicht mehr auf die Schleifenvariable zugreifen, da ich sie im Schleifenkopf deklariert habe.

    Fehler, Ausdruck, Erklärung nötig
    Keine Korrekturen per Privatnachricht.