El control de flujo en Java permite a los programas tomar decisiones y ejecutar diferentes bloques de código según las condiciones. En este artículo exploraremos las estructuras más comunes: condicionales y bucles.
1. Estructura condicional if-else
La estructura if-else permite ejecutar bloques de código según una condición booleana.
Sintaxis:
if (condición) {
// Código si la condición es verdadera
} else {
// Código si la condición es falsa
}
Ejemplo práctico:
public class CondicionalIf {
public static void main(String[] args) {
int edad = 18;
if (edad >= 18) {
System.out.println("Eres mayor de edad.");
} else {
System.out.println("Eres menor de edad.");
}
}
}
Salida:
Eres mayor de edad.
2. Condiciones anidadas y else if
Puedes anidar condiciones para manejar múltiples casos.
Ejemplo:
public class CondicionesAnidadas {
public static void main(String[] args) {
int nota = 85;
if (nota >= 90) {
System.out.println("Sobresaliente");
} else if (nota >= 70) {
System.out.println("Aprobado");
} else {
System.out.println("Suspendido");
}
}
}
Salida:
Aprobado
3. Estructura switch-case
La estructura switch-case es útil cuando deseas evaluar una misma variable contra múltiples valores.
Sintaxis:
switch (expresión) {
case valor1:
// Código si la expresión es igual a valor1
break;
case valor2:
// Código si la expresión es igual a valor2
break;
default:
// Código si no coincide con ningún caso
}
Ejemplo práctico:
public class EstructuraSwitch {
public static void main(String[] args) {
String dia = "Martes";
switch (dia) {
case "Lunes":
System.out.println("Inicio de semana.");
break;
case "Martes":
System.out.println("Segundo día de la semana.");
break;
default:
System.out.println("Día no reconocido.");
}
}
}
Salida:
Segundo día de la semana.
Nota: A partir de Java 12, se pueden usar expresiones switch más compactas.
Ejemplo con Java 12:
int resultado = switch (dia) {
case "Lunes" -> 1;
case "Martes" -> 2;
default -> 0;
};
4. Bucles en Java
4.1 Bucle while
Ejecuta un bloque de código mientras una condición sea verdadera.
Ejemplo:
public class BucleWhile {
public static void main(String[] args) {
int contador = 1;
while (contador <= 5) {
System.out.println("Contador: " + contador);
contador++;
}
}
}
Salida:
Contador: 1 Contador: 2 Contador: 3 Contador: 4 Contador: 5
4.2 Bucle do-while
Ejecuta el bloque al menos una vez antes de evaluar la condición.
Ejemplo:
public class BucleDoWhile {
public static void main(String[] args) {
int contador = 1;
do {
System.out.println("Contador: " + contador);
contador++;
} while (contador <= 5);
}
}
4.3 Bucle for
Ideal para iterar un número conocido de veces.
Sintaxis:
for (inicialización; condición; actualización) {
// Código a ejecutar
}
Ejemplo:
public class BucleFor {
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
System.out.println("Iteración: " + i);
}
}
}
4.4 Bucle for-each
Diseñado para iterar sobre colecciones o arrays.
Ejemplo:
public class BucleForEach {
public static void main(String[] args) {
int[] numeros = {1, 2, 3, 4, 5};
for (int numero : numeros) {
System.out.println("Número: " + numero);
}
}
}
5. Control del flujo en bucles
break:
Termina el bucle actual inmediatamente.
Ejemplo:
for (int i = 1; i <= 10; i++) {
if (i == 5) {
break;
}
System.out.println(i);
}
Salida:
1 2 3 4
continue:
Salta a la siguiente iteración del bucle.
Ejemplo:
for (int i = 1; i <= 5; i++) {
if (i == 3) {
continue;
}
System.out.println(i);
}
Salida:
1 2 4 5
6. Errores comunes al usar estructuras de control
Condiciones infinitas:
Ocurren si la condición del bucle nunca se vuelve falsa.
Ejemplo:
while (true) {
System.out.println("Bucle infinito");
}
Olvidar el break en switch:
Sin break, el flujo continuará ejecutando todos los casos siguientes.
Resumen
- Usa
if-elsepara condiciones simples yswitchpara múltiples opciones. - Elige el bucle adecuado según la tarea:
for,while, odo-while. - Controla el flujo en bucles con
breakycontinuepara mayor flexibilidad.