freeCodeCamp/curriculum/challenges/espanol/02-javascript-algorithms-an.../basic-javascript/iterate-with-javascript-do....

3.2 KiB

id title challengeType videoUrl forumTopicId dashedName
5a2efd662fb457916e1fe604 Itera con el bucle "do...while" de JavaScript 1 https://scrimba.com/c/cDqWGcp 301172 iterate-with-javascript-do---while-loops

--description--

El siguiente tipo de bucle que aprenderás se llama bucle do...while. Se llama bucle do...while porque primero hace (do) una pasada por el código dentro del bucle sin importar qué, y luego continua ejecutando el bucle mientras (while) la condición especificada sea verdadera (true).

var ourArray = [];
var i = 0;
do {
  ourArray.push(i);
  i++;
} while (i < 5);

El ejemplo anterior se comporta de forma similar a otros tipos de bucles, siendo el arreglo resultante [0, 1, 2, 3, 4]. Sin embargo, lo que hace que el bucle do...while sea diferente a otros bucles es cómo se comporta cuando la condición falla en la primera verificación. Veamos esto en acción: Aquí puedes ver un bucle while que ejecutará el código una y otra vez siempre que i < 5:

var ourArray = []; 
var i = 5;
while (i < 5) {
  ourArray.push(i);
  i++;
}

En este ejemplo, inicializamos el valor de ourArray a un arreglo vacío y el valor de i a 5. Cuando ejecutamos el bucle while, la condición se evalúa como false porque i no es inferior a 5, así que no ejecutamos el código dentro del bucle. El resultado es que ourArray terminará sin valores añadidos, y todavía se verá como [] una vez el código del ejemplo anterior haya terminado de ejecutarse. Ahora, dale un vistazo a un bucle do...while:

var ourArray = []; 
var i = 5;
do {
  ourArray.push(i);
  i++;
} while (i < 5);

En este caso, inicializamos el valor de i a 5, tal como lo hicimos en el bucle while. Cuando lleguemos a la siguiente línea, no hay ninguna condición para evaluar, así que entramos al código dentro de las llaves y se ejecuta. Añadiremos un único elemento al arreglo y luego incrementaremos i antes de llegar a la verificación de la condición. Cuando finalmente evaluamos la condición i < 5 en la última línea, vemos que el valor de i es ahora 6, por lo que falla la comprobación condicional. Salimos del bucle y hemos terminado. Al final del ejemplo anterior, el valor de ourArray es [5]. Esencialmente, un bucle do...while asegura que el código dentro del bucle se ejecute al menos una vez. Intentemos construir un bucle do...while para que funcione empujando valores a un arreglo.

--instructions--

Cambia el bucle while en el código por un bucle do...while. El bucle solo enviará el número 10 a myArray, e i será igual a 11 cuando tu código haya terminado de ejecutarse.

--hints--

Debes utilizar el bucle do...while para este ejercicio.

assert(code.match(/do/g));

myArray debe ser igual a [10].

assert.deepEqual(myArray, [10]);

i debe ser igual a 11

assert.equal(i, 11);

--seed--

--after-user-code--

if(typeof myArray !== "undefined"){(function(){return myArray;})();}

--seed-contents--

// Setup
var myArray = [];
var i = 10;

// Only change code below this line
while (i < 5) {
  myArray.push(i);
  i++;
}

--solutions--

var myArray = [];
var i = 10;
do {
  myArray.push(i);
  i++;
} while (i < 5)