• 10 hours
  • Easy

Free online content available in this course.

course.header.alt.is_certifying

Got it!

Last updated on 6/12/20

El bucle while

Log in or subscribe for free to enjoy all this course has to offer!

 

Mientras que el bucle  for  se utiliza cuando sabes cuántas veces quieres repetir un bloque de código, el bucle  while te permite seguir ejecutando un bloque de código mientras la condición a evaluar sea verdadera. Por lo tanto, aunque se puede utilizar con un contador (como un for), se suele utilizar cuando no sabes cuántas veces tienes que repetir el bucle.

Sintaxis de la sentencia while.

while (condición) {
  // bloque a ejecutar mientras la condición sea verdadera
}

La condición se evalúa antes de cada vuelta del bucle. Si la condición es verdadera, se ejecuta el bloque código del while. Llegado al final del bloque, la ejecución vuelve al  while  y se vuelve a evaluar la condición.

En caso de que la condición sea falsa, el bloque de código dentro del  while  no se ejecuta y el flujo del programa continúa en la línea después del  while 

 

Veamos un ejemplo del bucle  while .

En este ejemplo utilizamos un contador, como hicimos con el bucle  for , el número de repeticiones será gestionado por un contador. Este ejemplo podemos hacerlo utilizando un bucle for.

console.log('Comienzo del programa');
var contador = 0;
while (contador <= 10) {
  console.log('La variable contador es igual a: ' + contador);
  contador++;
}
console.log('Final del programa');
Resultado del imprimir los número del 1 al 10 con un bucle while
Resultado del imprimir los número del 1 al 10 con un bucle while

Como puedes observar, en primer lugar declaramos una variable que lleve la cuenta de cuantas veces se ha ejecutado el bucle. Con la expresión   contador++ , a cada "vuelta" que da el bucle, la variable contador se incrementa en 1 .

La condición evaluada por el while es que mientras que  contador <= 10 el bucle siga ejecutándose. Debido al incremento del contador,  cuando se llega a  contador = 11 la expresión evaluada por el  while se resuelve con un  false (11 <= 10 resulta ser falso). En ese momento, el bucle  while  deja de ejecutarse y el flujo del programa continúa en la siguiente línea.

Imagina que te olvidas de añadir la expresión de incrementa el contador  contador++  , ¿qué crees que ocurriría? Crearías un bucle infinito. La variable contador, tras cada vuelta, permanecería siendo  contador = 0 por lo que la condición evaluada por el while  contador <= 10 sería siempre verdadera.

 

Bucle infinito
Resultado de un bucle infinito

 

 

Elegir entre un bucle for y while

En muchos casos, tanto el  while  como el  for  pueden ser utilizados indistintamente, por lo que quizás te estés preguntando cuál deberías usar en cada caso.

El bucle  for  tiene la ventaja de integrar la modificación de la variable contador en su propia sintaxis, esto minimiza el riesgo de hacer un bucle infinito por error. La parte negativa, es que ello implica que el número de vueltas del bucle sea conocido con antelación. Las situaciones en las que el número de repeticiones no se conozca de antemano serán más simples de escribir con un bucle  while . En la mayoría de los casos, se usa para controlar datos que son introducidos por el usuario, como en el siguiente ejemplo.

var letra = "";
while (letra !== "x") {
    letra = prompt("Introduzca la letra x para salir:");
    console.log(letra);
}

Prueba este ejemplo: Se pide al usuario que elija una letra, y la muestra por consola. La ventana de entrada de datos se vuelve a abrir hasta que el usuario introduzca la letra "x". Es imposible saber cuántas veces va a tardar el usuario en escribir la letra "x".

Mira el mismo programa con un bucle for.

var letra = "";
/* 
  Bucle for sin necesidad de variable contador ni modificación.
  La sintaxis es horrible y más dificil de leer que con un while.
*/
for ( ; letra !== "x"; ) {
    letra = prompt("Introduzca la letra x para salir:");
    console.log(letra);
}

Sólo se utiliza la condición de salida y no la iniciación ni la modificación de la (inexistente) variable contador.

En conclusión, todos los bucles pueden escribirse con un while. Si sabemos cuántas repeticiones requerirá el bucle, será mejor utilizar el  for . En cambio, si no conocemos el número de vueltas requeridas, utiliza el  while .‌

 

Practica tú mismo

Numero mayor que 10

Escribe un programa que pida al usuario introducir un número entero mayor que 10, el cuadro de texto volverá a aparecer si el número es menor.

Introduce un número entre 50 y 100 

Escribe un programa que pida al usuario introducir un número entero entre 50 y 100, el cuadro de texto volverá a aparecer si el número es menor o mayor.

 

Escribe un programa que muestre por pantalla una tabla de multiplicar.

En primer lugar se le pedirá al usuario que introduzca un número entre 2 y 10. Si el número no está entre estos dos valores, se le seguirá pidiendo hasta que introduzca el valor correcto. Una vez haya introducido un valor entre 2 y 10, se mostrará por consola la tabla de multiplicar del número elegido.

 

Tabla de multiplicar
Tabla de multiplicar

 

Triángulo

Construye y muestra por consola un "triángulo" de 7 líneas como el siguiente:

Triángulo de 7 líneas utilizando símbolos de asterisco (*)
Triángulo de 7 líneas utilizando símbolos de asterisco (*)

  

Solución de los ejercicios

Intenta primero resolver los ejercicios propuesto por ti mismo. Si ves que te bloqueas, suele venir bien cambiar de actividad y volver a intentarlo más tarde. Si no lo consigues, puedes consultar las soluciones aquí

Example of certificate of achievement
Example of certificate of achievement