Warum verwenden Sie ein "do-while" - Schleife?
Ich habe nie verstanden, warum eine tun, während Schleifen notwendig ist. Ich verstehe, was Sie tun, ist, um den code auszuführen, dass die while-Schleife enthält, ohne zu prüfen, ob die Bedingung wahr ist ersten.
Aber nicht den folgenden code:
do{
document.write("ok");
}
while(x == "10");
Genau das gleiche wie:
document.write("ok");
while(x == "10"){
document.write("ok");
}
Vielleicht bin ich sehr dumm und fehlt etwas, das offensichtlich aus, aber ich sehe nicht den Vorteil der Verwendung von tun, während über meinem obigen Beispiel.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dein Beispiel-code ist falsch:
Wäre dies die eigentliche form:
Sie sind richtig, dass es führt die innere code-block vor der überprüfung der Bedingung, es muss aber nicht duplizieren müssen die innere code-block, so, wie Sie es. Die do/while-Konstrukt ist (wie Sie bereits erwähnt) ein Weg, um sicherzustellen, dass ein Stück code, das ausgeführt wird, 1 oder mehr mal anstatt der 0 oder mehrmals (je nach Bedarf).
Wie Sie sehen, mussten Sie wiederholen die gleichen Zeile im zweiten Beispiel.
Wenn Sie halten, werden Sie wahrscheinlich wollen, dass diese beiden Zeilen der gleiche sein, aber Sie haben wiederholt sich.
Nun Stell dir vor, das war ein big block und nicht eine Linie, nicht nur wird Sie nehmen unnötig kostbare visual Raum, aber es wird auch schwieriger zu pflegen und gewinnen Inkonsistenzen.
tun, während Sie wird mindestens einmal ausgeführt - so dass Sie, während... wo, wie, während erfordert die Bedingung erfüllt, um überhaupt starten..
Was:
Natürlich Sie nicht schreiben, dass:
Und Sie werden dann gezwungen, eine do-while-Schleife
Gott Segne es!!
Edit:
Oder Sie verwenden Verfahren..
Der Unterschied ist wichtig, wenn Sie mehr als eine Zeile code mindestens einmal ausgeführt. Die Simulation einer do-Schleife mit einer while-Schleife würde dazu führen, dass erhebliche code-Duplizierung, das ist immer schlecht. Zugegeben, es ist eine bessere Lösung zu überarbeiten, dass code in eine Methode und dann einfach die gleiche Methode aufrufen, bevor und in der Schleife, aber viele Leute mögen auch, dass viel Doppelarbeit, und mit der
do
Schlüsselwort deklariert eindeutig "dies ist eine Fuß-gesteuerte Schleife".Also, im Grunde, Lesbarkeit und basic SE Prinzipien.
Seine eine bessere Möglichkeit, code zu schreiben:
Kann geschrieben werden mit do-while als:
Gibt es bessere Beispiele von do-while, aber ich konnte mich nicht erinnern, zu dieser Zeit.
Was du bist fehlt, ist, dass Ihre Nutzung des
do...while
über 100% FALSCH!Einen
do...while
- Schleife in Java zum Beispiel so aussieht:Sehen, dass der vollständige Mangel an der zweite block gibt es? Sehen Sie, wie die
while
endet die Aussage komplett? Also, was jetzt passiert, ist, dass der code in der{...}
paar zwischendo
undwhile
wird ausgeführt, dannsomeBooleanCondition
wird getestet und wenn es stimmt, der code-block wird ausgeführt wieder. Und wieder. Und wieder. BissomeBooleanCondition
getestet wird false.Und an diesem Punkt, vielleicht wirst du verstehen, warum wir haben beide Formen der Schleife. Der obige code könnte übersetzt werden:
Diesem code, jedoch, erfordert, dass Sie geben die gleichen (möglicherweise großen und komplizierten) code zweimal, ließ die Tür offen für mehr Fehler. Daher die Notwendigkeit für eine Boden-test-Schleife statt einer top-test-Schleife.
Zunächst Ihren
do..while
syntax ist falsch. Es ist so:Es ist nützlich, wenn Sie ausführen möchten, der Körper der Schleife mindestens einmal ohne Bewertung seine teminating Zustand. Zum Beispiel können sagen, Sie möchten, schreiben Sie eine Schleife, wo Sie sind der Aufforderung der Benutzer zur Eingabe und-je nach input-ausführen von code. Sie würde wollen, dass dies mindestens einmal ausgeführt und dann fragt es den Benutzer, ob er will weiter. In solchen Fällen
do..while
- loop-Ergebnisse in weniger und sauberer code im Vergleich zu einemwhile
Schleife.Obwohl
geschrieben werden kann als
ersteres ist nachvollziehbar.