Control de Flujo
## Objetivos de Aprendizaje
- Dominar sentencias if, else if, else
- Usar switch para múltiples casos
- Implementar bucles for, while, do-while
- Trabajar con break y continue
## Sentencias Condicionales
### if Básico
```javascript
const edad = 18;
if (edad >= 18) {
console.log("Eres mayor de edad");
}
```
### if...else
```javascript
const edad = 16;
if (edad >= 18) {
console.log("Eres mayor de edad");
} else {
console.log("Eres menor de edad");
}
```
### if...else if...else
```javascript
const nota = 85;
let grado;
if (nota >= 90) {
grado = "A";
} else if (nota >= 80) {
grado = "B";
} else if (nota >= 70) {
grado = "C";
} else if (nota >= 60) {
grado = "D";
} else {
grado = "F";
}
console.log(`Tu grado es: ${grado}`);
```
## Operador Ternario
### Para Condiciones Simples
```javascript
const edad = 20;
const tipo = edad >= 18 ? "adulto" : "menor";
```
### Ternario Anidado
```javascript
const nota = 85;
const grado = nota >= 90 ? "A"
: nota >= 80 ? "B"
: nota >= 70 ? "C"
: nota >= 60 ? "D"
: "F";
```
## Sentencia switch
### Sintaxis Básica
```javascript
const dia = 3;
let nombreDia;
switch (dia) {
case 1:
nombreDia = "Lunes";
break;
case 2:
nombreDia = "Martes";
break;
case 3:
nombreDia = "Miércoles";
break;
case 4:
nombreDia = "Jueves";
break;
case 5:
nombreDia = "Viernes";
break;
case 6:
nombreDia = "Sábado";
break;
case 7:
nombreDia = "Domingo";
break;
default:
nombreDia = "Día inválido";
}
console.log(nombreDia);
```
### Cases Múltiples
```javascript
const mes = 2;
let estaciones;
switch (mes) {
case 12:
case 1:
case 2:
estaciones = "Invierno";
break;
case 3:
case 4:
case 5:
estaciones = "Primavera";
break;
case 6:
case 7:
case 8:
estaciones = "Verano";
break;
case 9:
case 10:
case 11:
estaciones = "Otoño";
break;
}
```
## Bucle for
### for Tradicional
```javascript
for (let i = 0; i < 5; i++) {
console.log(`Iteración ${i}`);
}
// 0, 1, 2, 3, 4
```
### for...of (Arrays)
```javascript
const frutas = ["manzana", "pera", "uva"];
for (const fruta of frutas) {
console.log(fruta);
}
```
### for...in (Objetos/Índices)
```javascript
const persona = { nombre: "Ana", edad: 28 };
for (const clave in persona) {
console.log(`${clave}: ${persona[clave]}`);
}
```
### forEach
```javascript
const numeros = [1, 2, 3, 4, 5];
numeros.forEach(function(numero, indice) {
console.log(`Índice ${indice}: ${numero}`);
});
// Con función flecha
numeros.forEach((numero, indice) => {
console.log(`Índice ${indice}: ${numero}`);
});
```
## Bucle while
### while Básico
```javascript
let i = 0;
while (i < 5) {
console.log(i);
i++;
}
// 0, 1, 2, 3, 4
```
### while con Condición Compuesta
```javascript
let count = 0;
while (count < 10 && count !== 5) {
console.log(count);
count++;
}
```
## Bucle do...while
### Ejecuta al Menos Una Vez
```javascript
let numero;
do {
numero = prompt("Ingresa un número mayor a 10:");
} while (numero <= 10);
console.log("¡Gracias!");
```
## break y continue
### break - Sale del Bucle
```javascript
for (let i = 0; i < 10; i++) {
if (i === 5) {
break;
}
console.log(i);
}
// 0, 1, 2, 3, 4
```
### continue - Salta a la Siguiente Iteración
```javascript
for (let i = 0; i < 5; i++) {
if (i === 2) {
continue;
}
console.log(i);
}
// 0, 1, 3, 4
```
## Etiquetas (Labels)
### Para Bucles Anidados
```javascript
externo:
for (let i = 0; i < 3; i++) {
for (let j = 0; j < 3; j++) {
if (j === 1) {
break externo; // Sale del bucle externo
}
console.log(`i=${i}, j=${j}`);
}
}
```
## try...catch...finally
### Manejo de Errores
```javascript
try {
const resultado = 10 / 0;
console.log(resultado);
} catch (error) {
console.error("Ocurrió un error:", error.message);
} finally {
console.log("Siempre se ejecuta");
}
```
### try...catch con Condición
```javascript
try {
JSON.parse("válido"); // Funciona
console.log("JSON válido");
} catch {
console.log("JSON inválido");
}
```
## Resumen
- `if/else if/else` para condiciones
- Operador ternario para condiciones simples
- `switch` para múltiples casos discretos
- `for`, `for...of`, `for...in`, `forEach` para iteración
- `while` y `do...while` para bucles condicional
- `break` sale del bucle; `continue` salta iteración
- `try...catch...finally` para manejo de errores
Comments
Comments powered by Giscus
To enable comments, add your Giscus embed code here.
Learn more about Giscus →