TutorJava Nivel Básico: tutorial completo Java 21

Los operadores y las estructuras de control de flujo determinan el orden de ejecución del programa. Java 14 y 21 introdujeron importantes mejoras en switch que conviene conocer.

Operadores

Los operadores más usados:

Categoría

Operadores

Ejemplo

Aritméticos

+ - * / %

10 % 3 == 1

Asignación

= += -= *= /=

x += 5

Comparación

== != < > <= >=

a == b

Lógicos

&& || !

x > 0 && x < 10

Ternario

cond ? a : b

max = a > b ? a : b

Incremento

++ --

i++ (post), ++i (pre)

Importante: == compara referencias en objetos (¿apuntan a lo mismo?). Para comparar el contenido de objetos usa .equals():

String a = new String("hola");
String b = new String("hola");
a == b          // false (distintas referencias)
a.equals(b)     // true (mismo contenido)

if / else if / else

int nota = 75;
String calificacion;

if (nota >= 90) {
    calificacion = "Sobresaliente";
} else if (nota >= 70) {
    calificacion = "Notable";
} else if (nota >= 60) {
    calificacion = "Aprobado";
} else {
    calificacion = "Suspenso";
}

switch (clásico vs. moderno)

El switch clásico de Java tenía el problema del fall-through (si olvidas break, la ejecución cae al siguiente case). Desde Java 14, el switch expression es más seguro y expresivo:

// Switch clásico (aún válido, propenso a errores)
int dia = 3;
String nombre;
switch (dia) {
    case 1: nombre = "Lunes"; break;
    case 2: nombre = "Martes"; break;
    case 3: nombre = "Miércoles"; break;
    default: nombre = "Otro"; break;
}

// Switch expression (Java 14+) — sin fall-through, más limpio
String nombreModerno = switch (dia) {
    case 1 -> "Lunes";
    case 2 -> "Martes";
    case 3 -> "Miércoles";
    case 4 -> "Jueves";
    case 5 -> "Viernes";
    default -> "Fin de semana";
};

Bucles: for, while, do-while

// for clásico
for (int i = 0; i < 5; i++) {
    System.out.println(i);
}

// for-each (para arrays y colecciones)
int[] numeros = {1, 2, 3, 4, 5};
for (int n : numeros) {
    System.out.println(n);
}

// while
int contador = 0;
while (contador < 5) {
    System.out.println(contador);
    contador++;
}

// do-while (ejecuta al menos una vez)
int x = 10;
do {
    System.out.println(x);
    x--;
} while (x > 0);

break, continue y etiquetas

// break: sale del bucle actual
for (int i = 0; i < 10; i++) {
    if (i == 5) break;
    System.out.println(i); // 0 1 2 3 4
}

// continue: salta a la siguiente iteración
for (int i = 0; i < 10; i++) {
    if (i % 2 == 0) continue;
    System.out.println(i); // 1 3 5 7 9
}

// Etiquetas para break/continue en bucles anidados
externo:
for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 3; j++) {
        if (i == 1 && j == 1) break externo;
        System.out.println(i + "," + j);
    }
}

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP