Declaración do...while de JavaScript para crear un bucle o ciclo

Resumen: en este tutorial, aprenderás a usar la declaración do...while
de JavaScript para crear un bucle o ciclo que ejecute un bloque de código hasta que una condición no se cumpla.
Introducción a la declaración do…while de JavaScript
La declaración do...while
crea un bucle que ejecuta un bloque de código hasta que una condición se evalúa como falsa. La siguiente instrucción ilustra la sintaxis del bucle do...while:
do {
statement;
} while(expression);
A diferencia del bucle while, el bucle do-while
siempre se ejecuta la declaración al menos una vez antes de evaluar la expresión.
Debido a que el ciclo do...while
evalúa la expresión después de cada iteración, a menudo se le denomina ciclo posterior a la prueba.
Dentro del cuerpo del bucle, se debe realizar cambios en algunas variables para asegurarse de que la expresión sea falsa después de algunas iteraciones. De lo contrario, tendrás un bucle infinito.
El siguiente diagrama de flujo ilustra la instrucción del ciclo do-while
:
En la práctica, a menudo se usa la instrucción do...while
cuando deseas ejecutar el cuerpo del bucle al menos una vez antes de verificar la condición.
Ejemplos de instrucciones do while de JavaScript
Tomemos algunos ejemplos del uso de la sentencia do...while.
1) Ejemplo simple de instrucción do while de JavaScript
El siguiente ejemplo usa la instrucción do...while
para enviar cinco números del 0 al 4 a la consola:
let count = 0;
do {
console.log(count);
count++;
} while (count < 5)
Resultado:
0
1
2
3
4
En este ejemplo:
- Primero, declara e inicializa la variable de count a cero.
- Segundo, mostrar el valor de count e incrementar su valor en uno en cada iteración hasta que su valor sea mayor o igual a 5.
2) Usar la declaración do while de JavaScript para hacer un juego simple de adivinanzas de números
El siguiente ejemplo usa la instrucción do...while
para generar un juego de adivinanzas.
El script genera un número entero aleatorio entre 1 y 10. Y tienes que hacer una serie de intentos hasta que tu número coincida con el número aleatorio.
// generar un número secreto entre 1 y 10
const MIN = 1;
const MAX = 10;
let secretNumber = Math.floor(Math.random() * (MAX - MIN + 1)) + MIN;
let guesses = 0; // para almacenar el número de intentos
let hint = ''; // para almacenar pistas
let number = 0;
do {
// Obtener entrada de la usuaria
let input = prompt('Por favor ingresa un número entre ${MIN} y ${MAX}' + hint);
// obtener el entero
number = parseInt(input);
// aumentar el número de intentos
guesses++;
// verifica el número de entrada con el número secreto y proporciona una pista si es necesario
if (number > secretNumber) {
hint = ', y menos que ' + number;
} else if (number < secretNumber) {
hint = ', y mayor que ' + number;
} else if (number == secretNumber) {
alert('¡Bravo! tienes razon despues de ${guesses} intentos.');
}
} while (number != secretNumber);
Cómo funciona.
Primero, declare las constantes MIN
y MAX
e inicialice sus valores en 1 y 10:
const MIN = 1;
const MAX = 10;
En segundo lugar, utilice la función Math.random()
para generar un número de punto flotante aleatorio con un valor entre 0 y 1 (incluido cero pero no uno).
Para generar un número aleatorio entre MIN
y MAX
(exclusivo), utiliza la siguiente expresión:
Math.random() * (MAX - MIN + 1)
Sin embargo, el resultado es un número de coma flotante. Por lo tanto, se debe usar la función Math.floor()
para convertirlo en un número entero:
Math.floor(Math.random() * (MAX - MIN + 1))
Para generar un número aleatorio entre min
y max
, utiliza la siguiente expresión:
let secretNumber = Math.floor(Math.random() * (MAX - MIN + 1)) + MIN;
En tercer lugar, define tres variables para almacenar la cantidad de intentos, sugerencias y el número de entrada del usuario:
let guesses = 0; // para almacenar los intentos
let hint = ''; // para almacenar pistas
let number = 0;
Cuarto, se usa la función input()
para obtener la entrada del usuario:
let input = prompt('Por favor ingresa un número entre ${MIN} y ${MAX}' + hint);
Ten en cuenta que la función input() solo funciona en navegadores web. Si ejecutas el código en otro entorno, como node.js, verifique la función correspondiente.
La función input() devuelve una cadena, por lo tanto, debes usar la función parseInt() para convertirla en un número entero:
number = parseInt(input);
Quinto, aumenta el número de intentos en cada iteración:
guesses++;
Sexto, verifica el número de entrada con el número secreto (aleatorio) y da una pista. Si los números coinciden, muestra el mensaje usando la función alert()
:
if (number > secretNumber) {
hint = ', y menos que ' + number;
} else if (number < secretNumber) {
hint = ', y mayor que ' + number;
} else if (number == secretNumber) {
alert('¡Bravo! tienes razon despues de ${guesses} intentos.';
}
Séptimo, realiza la siguiente iteración hasta que el número coincida con el número secreto.
while (number != secretNumber);
Resumen
Utiliza la instrucción do...while
para crear un bucle que ejecute un bloque de código hasta que una condición sea falsa.