2011-04-08 14 views
7

Duplicar posibles:
When is a do-while appropriate?El do-while

Ojalá alguien

mente me dice cuál es la diferencia entre estas dos afirmaciones son y cuando uno se debe utilizar sobre el otro?

var counterOne = -1; 

do { 
    counterOne++; 
    document.write(counterOne); 
} while(counterOne < 10); 

                                                                                                                                                                  y

var counterTwo = -1; 

while(counterTwo < 10) { 
    counterTwo++; 
    document.write(counterTwo); 
} 

                                                                                                                  http://fiddle.jshell.net/Shaz/g6JS4/

En este momento en el tiempo que no veo el punto de la declaración do si sólo puede hacerse sin especificar que dentro de la instrucción while.

+0

duplicados de http://stackoverflow.com/questions/1035229/when-is-a-do-while-appropriate –

+0

@lwburk: No estoy preguntando sobre otros bucles ('for',' switch', 'if'). Me pregunto cuál es la diferencia entre 'while' y' do-while'. – Shaz

+0

Non sequitur. De eso se trataba exactamente esa pregunta. –

Respuesta

20

Hacer/Mientras VS Si bien es una cuestión de cuando se comprueba la condición.

Un ciclo while comprueba la condición, luego ejecuta el ciclo. A Do/While ejecuta el ciclo y luego verifica las condiciones.

Por ejemplo, si la variable counterTwo fuera 10 o mayor, entonces el ciclo do/while se ejecutará una vez, mientras que el ciclo while normal no ejecutará el ciclo.

8

Se garantiza que el do-while se ejecutará al menos una vez. Mientras que el bucle while puede no ejecutarse en absoluto.

1

La declaración do normalmente asegura que su código se ejecuta al menos una vez (expresión evaluada al final), mientras se evalúa al inicio.

1

Digamos que desea procesar el bloque dentro del circuito al menos una vez, independientemente de la condición.

1

do while comprueba el condicional después de ejecutar el bloque. while comprueba el condicional antes de ejecutarlo. Esto generalmente se usa en situaciones donde el código siempre se ejecuta al menos una vez.

1

si obtiene el valor de contador Dos como valor de retorno de otra función, en el primer caso estaría seguro de una instrucción if.

p. Ej.

var counterTwo = something.length; 

while(counterTwo > 0) { 
    counterTwo--; 
    document.write(something.get(counterTwo)); 
} 

o

var counterTwo = something.length; 

if(counterTwo < 0) return; 

do 
{ 
     counterTwo--; 
    document.write(something.get(counterTwo)); 
} while(counterTwo > 0); 

el primer caso es útil, si procesa los datos en una matriz existente. el segundo caso es útil, si se "reúnen" los datos:

do 
{ 
    a = getdata(); 
    list.push(a); 
} while(a != "i'm the last item"); 
Cuestiones relacionadas