Tracks
/
JavaScript
JavaScript
/
Temario
/
Bucles while
Bu

Bucles while en JavaScript

8 ejercicios

Acerca de Bucles while

Sintaxis general

Con un bucle while puedes ejecutar código de forma repetida siempre que se cumpla una condición.

Se escribe con la palabra clave while, seguida de una condición entre paréntesis y un bloque de código que contiene el cuerpo del bucle entre llaves.

while (condition) {
  // code that is executed repeatedly as long as the condition is
  // true
}

JavaScript también tiene un bucle do-while. Aquí la condición se comprueba después de que se haya ejecutado el cuerpo del bucle. Esto es útil cuando la condición depende de evaluaciones que se hacen en el cuerpo.

do {
  // The code here will always be executed once and then
  // repeatedly while the condition is true.
} while (condition);

Salir del bucle

Dentro del cuerpo de un bucle puedes usar la palabra clave break para detener por completo la ejecución del bucle. A menudo se usa junto con true como condición. Con esto, puedes controlar desde cualquier punto del cuerpo del bucle cuándo debe detenerse este.

const winningNumber = 7;

while (true) {
  const num = readUserGuess();
  if (num === winningNumber) {
    break;
  }
}

La palabra clave break no se puede usar dentro de una función anidada en el bucle; consulta la documentación de MDN para ver un ejemplo.

Continuar

A diferencia de break, la palabra clave continue solo detiene la ejecución de la iteración actual y continúa con la siguiente. Con continue a menudo puedes evitar envolver grandes partes del cuerpo del bucle en un condicional.

let i = 0;

while (i < 100) {
  i = i + 2;

  if (i % 3 === 0) {
    continue;
  }

  // The code here will only be executed when i was not divisible
  // by 3 in the check above.
}

Bucles infinitos

Se crea un bucle que (en teoría) se repite indefinidamente cuando la condición del bucle siempre se cumple y no se alcanza ninguna instrucción break o return en el cuerpo del bucle. La ejecución tiene que detenerse desde fuera. Según el entorno en el que se ejecute ese código, esto se hará automáticamente o requerirá intervención manual.

let i = 0;

while (i < 100) {
  if (i % 3 === 0) {
    continue;
  }

  i = i + 2;
}

// This loop runs forever since the variable i does not change
// anymore after it is divisible by 3 the first time.

Detectar bucles infinitos puede parecer trivial en este ejemplo sencillo, pero no siempre es tan fácil con código más complejo. Es una buena práctica pensar bien si tu condición acabará siendo falsa o si se llegará a alcanzar tu instrucción break o return.

Editar en GitHub El enlace se abre en una nueva ventana o pestaña

Aprende Bucles while