JavaScript

JavaScript

Tutorial JavaScript: Estructuras de control

JavaScript estructuras control: tipos y uso. Domina las diferentes estructuras de control en JavaScript con ejemplos prácticos y detallados.

Las estructuras de control en JavaScript son instrucciones que permiten manejar el flujo de ejecución de un programa. Estas estructuras, también conocidas como sentencias de control, son fundamentales para el desarrollo de algoritmos que requieren una ejecución no lineal. 

Existen diversas estructuras de control en JavaScript, como las condicionales y las iterativas o de repetición, que permiten la realización de tareas y decisiones específicas basándose en el cumplimiento de ciertas condiciones o finalización de iteraciones.

Estructuras de control condicionales

Las estructuras condicionales son aquellos bloques de código que se ejecutan únicamente si se cumple una condición específica. Esto permite que un programa tome decisiones basándose en el cumplimiento de ciertos criterios.

if

La sentencia if es la estructura de control condicional más básica que permite evaluar una condición. Si la condición es verdadera, se ejecutará el bloque de código asociado, si no, se ignorará.

let numero = 5;

if (numero > 0) {
console.log("El número es positivo");
}

En este ejemplo, si el valor de la variable numero es mayor que 0, se imprimirá en la consola "El número es positivo".

else

La sentencia else se utiliza en conjunto con if, para establecer un bloque de código que se ejecutará en caso de que la condición evaluada sea falsa.

let numero = -1;

if (numero > 0) {
console.log("El número es positivo");
} else {
console.log("El número no es positivo");
}

En este ejemplo, como el valor de la variable numero no es mayor que 0, se imprimirá en la consola "El número no es positivo".

else if

La sentencia else if permite evaluar múltiples condiciones en una misma estructura condicional. Esta sentencia se utiliza después de un if, y antes de un else, si se desea agregar más condiciones a verificar.

let numero = 0;

if (numero > 0) {
console.log("El número es positivo");
} else if (numero < 0) {
console.log("El número es negativo");
} else {
console.log("El número es cero");
}

En el ejemplo, si el valor de la variable numero es mayor que 0 se imprimirá "El número es positivo", si es menor que 0 se imprimirá "El número es negativo" y si no cumple ninguna de las condiciones anteriores se imprimirá "El número es cero".

Estructuras de control iterativas

Las estructuras iterativas, también conocidas como bucles o loops, permiten la repetición de un bloque de código hasta que se cumpla una condición específica, lo que resulta útil cuando es necesario ejecutar una tarea varias veces.

for

El bucle for es útil cuando se desea ejecutar una acción múltiples veces conociendo de antemano la cantidad de repeticiones. La sintaxis del bucle for se compone de tres partes: la inicialización, la condición y la actualización de la variable de control (también conocida como contador o iterador).

La sintaxis básica de un bucle for es la siguiente:

for (inicialización; condición; actualización) {
// bloque de código a ejecutar
}

Inicialización: En esta parte se crea y asigna un valor inicial a la variable de control. Por lo general, esta variable es un número que actúa como índice o contador. La inicialización solo se ejecuta una vez, antes de comenzar el bucle.

Condición: La condición es una expresión booleana que se evalúa antes de cada iteración del bucle. Si la condición es verdadera, el bloque de código asociado se ejecuta. Si es falsa, el bucle termina y el flujo de control del programa continúa después del bucle.

Actualización: Esta parte actualiza el valor de la variable de control después de cada iteración. Por lo general, consiste en incrementar o disminuir el valor del contador.

A continuación se muestra un ejemplo de un bucle for que suma los números del 1 al 10:

let suma = 0;

for (let i = 1; i <= 10; i++) {
suma += i;
}

console.log("La suma de los números del 1 al 10 es:", suma);

En este ejemplo:

  • La inicialización crea y asigna el valor 1 a la variable i.
  • La condición es que i sea menor o igual a 10. Como el valor inicial de i es 1, la condición se cumple y se entra al bucle.
  • Dentro del bloque de código del bucle, se suma el valor actual de i a la variable suma.
  • La actualización incrementa el valor de i en 1 al final de cada iteración, usando el operador i++.
  • El bucle continúa con la próxima iteración, evaluando nuevamente la condición. Si la condición es verdadera, se repite el proceso. Si es falsa, se sale del bucle, y se ejecuta la siguiente línea, imprimiendo la suma final en la consola.

De esta manera, el bucle for permite controlar de manera efectiva la cantidad de veces que se ejecuta un bloque de código y facilita la realización de tareas repetitivas en función de una variable de control previamente definida.

while

El bucle while es útil cuando no se conoce de antemano cuántas veces se repetirá un bloque de código, pero se conoce la condición bajo la cual se debe seguir repitiendo. Este bucle ejecuta un bloque de código siempre que se cumpla una condición específica.

El siguiente ejemplo muestra un bucle while que calcula el factorial de un número (el factorial es el producto de todos los números enteros positivos desde 1 hasta un número n):

let numero = 5;
let factorial = 1;

while (numero > 1) {
factorial *= numero;
numero--;
}

console.log(factorial);

En este ejemplo, el bucle while se ejecuta mientras el valor de la variable numero sea mayor que 1. Durante cada iteración, el valor de factorial se multiplica por el valor actual de numero, y luego numero se disminuye en 1.

do...while

El bucle do...while es similar al bucle while, pero su condición se evalúa después de ejecutar el bloque de código en lugar de antes, lo que garantiza que el bloque de código se ejecute al menos una vez. El siguiente ejemplo muestra un bucle do...while que solicita un número mayor que 10 al usuario:

let numero;

do {
numero = parseInt(prompt("Ingrese un número mayor que 10:"));
} while (numero <= 10);

console.log("El número ingresado es:", numero);

En este ejemplo, el bucle do...while continúa solicitando un número al usuario hasta que se ingresa un número mayor que 10. Una vez que se cumple la condición, se muestra el número ingresado en la consola.

Otros operadores de control

Además de las estructuras básicas de control, JavaScript también ofrece algunas sentencias adicionales que permiten controlar el flujo de un programa de forma más avanzada.

break

La sentencia break se utiliza para salir de forma anticipada de un bucle. Es útil cuando se desea terminar la ejecución del bucle antes de que se cumpla la condición establecida en la estructura iterativa. El siguiente ejemplo muestra un bucle for que imprime números aleatorios pero se detiene al obtener un número menor a 0.5:

for (let i = 0; i < 100; i++) {
let numeroAleatorio = Math.random();
console.log(numeroAleatorio);

if (numeroAleatorio < 0.5) {
break;
}
}

En este ejemplo, cuando se encuentra un número aleatorio menor a 0.5, la sentencia break fuerza la salida del bucle for.

continue

La sentencia continue permite interrumpir la iteración actual de un bucle e inmediatamente pasar a la siguiente. Es útil cuando se desea omitir una parte del código en la iteración actual y luego continuar con el resto de las iteraciones. El siguiente ejemplo muestra un bucle for que imprime los números impares entre 1 y 10:

for (let i = 1; i <= 10; i++) {
// Un número es par si su resto al dividir por 2 (i % 2) es 0
if (i % 2 === 0) {
continue;
}

console.log(i);
}

En este ejemplo, si el número i es par, la sentencia continue evita que se ejecute la instrucción console.log(i) y pasa a la siguiente iteración, imprimiendo solo los números impares.

En resumen, las estructuras de control en JavaScript son fundamentales para el desarrollo de algoritmos y su correcta aplicación en programas, permitiendo realizar distintas tareas y tomar decisiones en función del cumplimiento de condiciones y de la finalización de iteraciones. Mediante el uso de las estructuras condicionales e iterativas, así como de las sentencias de control, se puede crear un flujo de ejecución del programa eficiente y adecuado a las necesidades específicas de la aplicación.

Certifícate en JavaScript con CertiDevs PLUS

Ejercicios de esta lección Estructuras de control

Evalúa tus conocimientos de esta lección Estructuras de control con nuestros retos de programación de tipo Test, Puzzle, Código y Proyecto con VSCode, guiados por IA.

Funciones flecha

JavaScript
Puzzle

Polimorfismo

JavaScript
Test

Array

JavaScript
Código

Transformación con map()

JavaScript
Test

Introducción a JavaScript

JavaScript
Test

Gestor de tareas con JavaScript

JavaScript
Proyecto

Manipulación DOM

JavaScript
Test

Funciones

JavaScript
Test

Funciones flecha

JavaScript
Código

Async / Await

JavaScript
Código

Creación y uso de variables

JavaScript
Test

Excepciones

JavaScript
Puzzle

Promises

JavaScript
Código

Funciones cierre (closure)

JavaScript
Test

Herencia

JavaScript
Puzzle

Herencia

JavaScript
Test

Estructuras de control

JavaScript
Código

Selección de elementos DOM

JavaScript
Test

Modificación de elementos DOM

JavaScript
Test

Filtrado con filter() y find()

JavaScript
Test

Funciones cierre (closure)

JavaScript
Puzzle

Funciones

JavaScript
Puzzle

Mapas con Map

JavaScript
Test

Reducción con reduce()

JavaScript
Test

Callbacks

JavaScript
Puzzle

Manipulación DOM

JavaScript
Puzzle

Promises

JavaScript
Test

Async / Await

JavaScript
Test

Eventos del DOM

JavaScript
Puzzle

Async / Await

JavaScript
Puzzle

Promises

JavaScript
Puzzle

Filtrado con filter() y find()

JavaScript
Código

Callbacks

JavaScript
Test

Creación de clases y objetos Restaurante

JavaScript
Código

Reducción con reduce()

JavaScript
Código

Filtrado con filter() y find()

JavaScript
Puzzle

Reducción con reduce()

JavaScript
Puzzle

Conjuntos con Set

JavaScript
Puzzle

Herencia de clases

JavaScript
Código

Eventos del DOM

JavaScript
Test

Clases y objetos

JavaScript
Puzzle

Modificación de elementos DOM

JavaScript
Puzzle

Mapas con Map

JavaScript
Puzzle

Funciones

JavaScript
Código

Tipos de datos

JavaScript
Test

Clases y objetos

JavaScript
Test

Array

JavaScript
Test

Conjuntos con Set

JavaScript
Test

Array

JavaScript
Puzzle

Encapsulación

JavaScript
Puzzle

Clases y objetos

JavaScript
Código

Uso de operadores

JavaScript
Puzzle

Uso de operadores

JavaScript
Test

Estructuras de control

JavaScript
Test

Excepciones

JavaScript
Test

Transformación con map()

JavaScript
Puzzle

Funciones flecha

JavaScript
Test

Selección de elementos DOM

JavaScript
Puzzle

Encapsulación

JavaScript
Test

Mapas con Map

JavaScript
Código

Creación y uso de variables

JavaScript
Puzzle

Polimorfismo

JavaScript
Puzzle

Tipos de datos

JavaScript
Puzzle

Estructuras de control

JavaScript
Puzzle

Todas las lecciones de JavaScript

Accede a todas las lecciones de JavaScript y aprende con ejemplos prácticos de código y ejercicios de programación con IDE web sin instalar nada.

Certificados de superación de JavaScript

Supera todos los ejercicios de programación del curso de JavaScript y obtén certificados de superación para mejorar tu currículum y tu empleabilidad.

En esta lección

Objetivos de aprendizaje de esta lección

  1. Comprender qué son las estructuras de control y su importancia en el desarrollo de algoritmos.
  2. Conocer las estructuras condicionales (if, else, else if) y su uso para tomar decisiones en el código.
  3. Aprender a utilizar los bucles (for, while, do...while) para repetir tareas hasta que se cumpla una condición.
  4. Familiarizarse con las sentencias adicionales (break, continue) para controlar el flujo de un programa en casos específicos.
  5. Saber aplicar adecuadamente las estructuras de control en diferentes situaciones para crear un flujo de ejecución eficiente y adecuado en el programa.