IstIst if() {do {}; while();} genau wie während {}
if(a)
{
do
{
b();
}
while(a);
}
genau wie
while(a)
{
b();
}
?
IstIst if() {do {}; while();} genau wie während {}
if(a)
{
do
{
b();
}
while(a);
}
genau wie
while(a)
{
b();
}
?
Sie sind die gleichen und ich werde ein Beispiel geben, wo Sie eigentlich die "Do-While" anstelle einer While-Schleife verwenden möchten.
do{
x = superMathClass.performComplicatedCalculation(3.14);
}
while (x < 1000);
im Gegensatz zu
x = superMathClass.performComplicatedCalculation(3.14);
while (x < 1000);
{
x = superMathClass.performComplicatedCalculation(3.14);
}
Das Argument für eine Do-While verwendet, ist oben gezeigt. Angenommen, die Zeile war nicht nur eine Zeile Code und stattdessen 25 Zeilen Code. Wenn Sie es ändern müssen, während Sie es nur einmal ändern würden. In der while-Schleife müssten Sie es zweimal ändern.
Ich stimme zu tun, während Sie ausgeschaltet sind und Sie sollten sie vermeiden, aber es gibt Argumente zu ihren Gunsten auch.
Ja, aber Sie sollten die letztere bevorzugen.
Ja, sie sind gleich.
Sie haben eine sehr unlesbare Möglichkeit geschaffen, die while
Schleife mit do-while
Schleife + if
zu verspotten.
Sie sollten dies lesen:
Test loops at the top or bottom? (while vs. do while)
Verwenden während Schleifen, wenn Sie einen Zustand vor der ersten Iteration der Schleife testen möchten.
Verwenden Sie die Do-while-Schleife, wenn Sie eine Bedingung nach dem Ausführen der ersten Iteration der Schleife testen möchten.
Ja, sie sind gleichwertig.
Wenn a
false
ist, wird b
überhaupt nicht ausgeführt.
Wenn a
true
ist, wird b
ausgeführt, bis a
false
wird.
Dies gilt gleichermaßen für beide Konstrukte.
Die Konstrukte sind in diesem Fall ziemlich austauschbar, aber ich denke, dass die if do while-Schleife in einigen Fällen nützlich ist, zum Beispiel wenn einige Variablen durch alle Iterationen der Schleife gehalten werden müssen, aber nicht benötigt werden Schleife wird nie ausgeführt. (Und es wird angenommen, dass es möglicherweise nicht.) Zum Beispiel
if (condition) {
LargeComplexObject object = new LargeComplexObject();
do {
some action
...
object.someMethod();
...
more actions
}
while (condition);
}
Dies ist eine nützliche Optimierung sein kann, wenn die Initialisierung dieses Objekts Zeit oder speicherintensiv ist, und es wird erwartet, dass diese Schleife nur gelegentlich auslösen und wird in den meisten Ausführungen der relevanten Methode übersprungen.Natürlich gibt es andere Fälle, in denen es auch nützlich sein könnte, im Grunde denke ich, dass die if-do-while verwendet werden sollte, wenn es Dinge gibt, die ausgeführt werden sollten, bevor Ihre Schleife startet, nur wenn Ihre Schleife eingegeben wird.
mögliches Duplikat von [Testschleifen oben oder unten? (während vs während tun)] (http://stackoverflow.com/questions/224059/test-loops-at-the-top-or-bottom-while-vs--do-while) – Niko
Testen Sie es: -P http://jsfiddle.net/LvWtY/ –
NEIN ... sie sind nicht genau die gleichen ... tun {..} while (a) ... wird sicherstellen, was auch immer es getan wird, mindestens einmal und dann bis 'a' ist nicht wahr .... while (a) {} ... wird nur tun, wenn 'a' wahr ist. – Brian