Estructuras Condicionales
Sentencia if
La sintaxis básica de la sentencia if es similar a otros lenguajes de programación:
if (expresión booleana) {
// Código que se ejecuta si la expresión es verdadera
}
Para manejar el caso cuando la expresión booleana es falsa, se utiliza la cláusula else:
if (expresión booleana) {
// Código que se ejecuta si la expresión es verdadera
} else {
// Código que se ejecuta si la expresión es falsa
}
Cuando necesitas evaluar múltiples condiciones de forma secuencial, puedes usar else if:
if (expresión booleana 1) {
// Código que se ejecuta si la expresión 1 es verdadera
} else if (expresión booleana 2) {
// Código que se ejecuta si la expresión 2 es verdadera
} else if (expresión booleana 3) {
// Código que se ejecuta si la expresión 3 es verdadera
} else {
// Código que se ejecuta si todas las expresiones son falsas
}
Sentencia switch
La sentencia switch permite ejecutar diferentes bloques de código según el valor de una variable:
switch(expresión){
case valor1 :
// Código para este caso
break; // Opcional
case valor2 :
// Código para este caso
break; // Opcional
// Puedes tener tantos casos como necesites
default : // Opcional
// Código por defecto
}
- El tipo de dato en la expresión del switch puede ser: byte, short, int, char o String (a partir de Java 7). No puede ser long, float o double.
- Cuando el valor de la expresión coincide con un caso, se ejecuta el código correspondiente hasta encontrar un break.
- Si no se incluye un break, la ejecución continúa con el siguiente caso (esto se conoce como "fall-through").
- La cláusula default se ejecuta cuando ninguno de los casos coincide con el valor de la expresión.
Ejemplo de comportamiento de fall-through:
public class DemoSwitch {
public static void main(String[] args) {
int valor = 1;
switch(valor){
case 0:
System.out.println("Cero");
case 1:
System.out.println("Uno");
case 2:
System.out.println("Dos");
default:
System.out.println("Por defecto");
}
}
}
El resultado de este código sería:
Uno
Dos
Por defecto
Estructuras Iterativas (Bucles)
Java proporciona tres tipos principales de bucles:
- Bucle for
- Bucle while
- Bucle do-while
Bucle for
La sintaxis del bucle for es:
for(inicialización; condición; actualización) {
// Código del bucle
}
Bucle while
La sintaxis del bucle while es:
while( condición ) {
// Código del bucle
}
Bucle do-while
El bucle do-while tiene la siguiente sintaxis:
do {
// Código del bucle
} while( condición );
La principal diferencia con el bucle while es que do-while se ejecuta al menos una vez, ya que la condición se evalúa después de ejecutar el bloque de código.
Aplicaciones comunes del bucle do-while:
- Menús interactivos de usuario
import java.util.Scanner;
public class SistemaMenu {
public static void main(String[] args) {
Scanner lector = new Scanner(System.in);
double saldo = 500.0;
double montoTransaccion = 50.0;
int opcion;
do {
// Mostrar el menú
System.out.println("\n=== Menú Principal ===");
System.out.println("1. Consultar saldo");
System.out.println("2. Realizar depósito");
System.out.println("3. Realizar retiro");
System.out.println("0. Salir");
System.out.print("Seleccione una opción: ");
// Obtener la opción del usuario
opcion = lector.nextInt();
// Procesar la opción seleccionada
switch (opcion) {
case 1:
System.out.println("Su saldo actual es: " + saldo + " euros");
break;
case 2:
saldo += montoTransaccion;
System.out.println("Depósito realizado. Nuevo saldo: " + saldo + " euros");
break;
case 3:
if (saldo >= montoTransaccion) {
saldo -= montoTransaccion;
System.out.println("Retiro realizado. Nuevo saldo: " + saldo + " euros");
} else {
System.out.println("Saldo insuficiente para realizar el retiro");
}
break;
case 0:
System.out.println("Gracias por usar nuestro sistema. ¡Hasta pronto!");
break;
default:
System.out.println("Opción no válida. Por favor, inténtelo de nuevo.");
}
} while (opcion != 0);
lector.close();
}
}
Con un bucle while, necesitarías duplicar el código del menú (una vez antes del bucle y otra dentro), lo que haría el código redundante.
Otros usos comodos del bucle do-while:
- Validación de entrada de datos
- Bucle principla en juegos (como juegos de adivinanzas)
- ...
Bucle for mejorado (enhanced for)
El bucle for mejorado (también conocido como for-each) tiene una sintaxis más simpilficada para recorrer colecciones:
for(tipo elemento : colección){
// Código que utiliza el elemento
}
Diferencias entre break y continue
breaktermina inmediatamente la ejecución del bucle actual. Si hay bucles anidados, solo se rompe el bucle más interno.continuesalta a la siguiente iteración del bucle actual, omitiendo el resto del código en la iteración actual.
Ejemplo con break:
public class EjemploBreak {
public static void main(String[] args) {
int[] numeros = {15, 25, 35, 45, 55};
for(int num : numeros) {
// Si encontramos el número 35, rompemos el bucle
if(num == 35) {
break;
}
System.out.println(num);
}
}
}
Salida:
15
25
Ejemplo con continue:
public class EjemploContinue {
public static void main(String[] args) {
int[] numeros = {15, 25, 35, 45, 55};
for(int num : numeros) {
// Si encontramos el número 35, saltamos a la siguiente iteración
if(num == 35) {
continue;
}
System.out.println(num);
}
}
}
Salida:
15
25
45
55