do...while
" porque primero " do
" una pasada del código dentro del bucle sin importar qué, y luego se ejecuta " while
" se cumple una condición específica y se detiene una vez que esa condición ya no es verdadera. Veamos un ejemplo. var ourArray = [];Esto se comporta como se esperaría con cualquier otro tipo de bucle, y la matriz resultante se verá como
var i = 0;
hacer {
nuestroArray.push (i);
i ++;
} while (i <5);
[0, 1, 2, 3, 4]
. Sin embargo, lo que hace do...while
diferente de otros bucles es cómo se comporta cuando la condición falla en la primera comprobación. Veamos esto en acción. Aquí hay un bucle while común que ejecutará el código en el bucle siempre y cuando i < 5
. var ourArray = [];Observe que inicializamos el valor de
var i = 5;
mientras (i <5) {
nuestroArray.push (i);
i ++;
}
i
en 5. Cuando ejecutamos la siguiente línea, notamos que i
no es menor que 5. Por lo tanto, no ejecutamos el código dentro del bucle. El resultado es que ourArray
no agregará nada, por lo que aún se verá así []
cuando todo el código del ejemplo anterior termine de ejecutarse. Ahora, eche un vistazo a un do...while
loop. var ourArray = [];En este caso, inicializamos el valor de
var i = 5;
hacer {
nuestroArray.push (i);
i ++;
} while (i <5);
i
como 5, tal como hicimos con el bucle while. Cuando llegamos a la siguiente línea, no hay comprobación del valor de i
, por lo que vamos al código dentro de las llaves y lo ejecutamos. Agregaremos un elemento a la matriz e incrementaremos i
antes de llegar a la verificación de condición. Entonces, cuando se llega a comprobar si i < 5
ver que i
es ahora de 6 años, que no pasa la comprobación condicional. Así que salimos del bucle y estamos listos. Al final del ejemplo anterior, el valor de ourArray
es [5]
. Esencialmente, un bucle do...while
while garantiza que el código dentro del bucle se ejecute al menos una vez. Intentemos obtener un bucle do...while
while para que funcione presionando valores en una matriz. while
de bucle en el código a un do...while
bucle de modo que el bucle empujará el número 10 a myArray
, y i
será igual a 11
cuando el código termina de ejecutarse. do...while
while para esto.
testString: 'assert(code.match(/do/g), "You should be using a do...while
loop for this.");'
- text: 'myArray
debe ser igual a [10]
.'
testString: 'assert.deepEqual(myArray, [10], "myArray
should equal [10]
.");'
- text: i
debe ser igual a 11
testString: 'assert.deepEqual(i, 11, "i
should equal 11
");'
```