1. java-hell.de
  2. Temas
  3. If-Else
Tema 3 de 11

Aprende if-else en Java – Practica condicionales

A partir de aquí tu programa toma decisiones. Con if, else y else if reaccionas a valores, y con los operadores de comparación compruebas qué está pasando.

Los ejercicios

Lo que aprenderás en este tema

  1. Tu primer if
  2. If-else
  3. Comparar
  4. Else-if
Ejercicio 1 de 4

Tu primer if

Con if, el código solo se ejecuta cuando una condición es verdadera:

if (edad >= 18) {
    IO.println("Adulto");
}

El código comprueba si numero es mayor que 10. Cambia numero para que se imprima el texto.

Código inicial
void main() {
    int numero = 5;

    if (numero > 10) {
        IO.println("¡Mayor que 10!");
    }
}
Contexto
Cómo maneja el compilador las condiciones

En el bytecode, un if se convierte en un salto condicional. La CPU evalúa una comparación y, según el resultado, entra en el bloque "then" o se lo salta por completo.

Las CPU modernas hacen predicción de saltos (branch prediction): adivinan qué rama es más probable y empiezan a preparar ese código antes de tiempo. Si la CPU se equivoca, ese trabajo se tira a la basura (vaciado del pipeline).

Ejercicio 2 de 4

If-else

Con else dices qué debe pasar cuando la condición no es verdadera:

if (condicion) {
    // si es verdadera
} else {
    // si es falsa
}

Las líneas con println ya están puestas. Solo tienes que completar la condición del if: comprueba si temperatura es mayor o igual que 20.

Código inicial
void main() {
    int temperatura = 22;

    if (???) {
        IO.println("Calor");
    } else {
        IO.println("Frío");
    }
}
Contexto
El operador ternario: if-else en corto

Java tiene una versión de if-else en una sola línea: resultado = condicion ? siVerdadero : siFalso;

Ejemplo: String s = temperatura >= 20 ? "Calor" : "Frío";. Es la misma decisión que el bloque if-else de aquí, solo que más compacta.

Ejercicio 3 de 4

Comparar

Java tiene estos operadores de comparación:

  • == igual a
  • != distinto de
  • < menor que
  • > mayor que
  • <= menor o igual que
  • >= mayor o igual que

Ojo: para comprobar igualdad se usa == (¡doble!), no = (eso es una asignación).

Completa la condición: comprueba si clave tiene el valor 1234.

Código inicial
void main() {
    int clave = 1234;

    if (???) {
        IO.println("Acceso concedido");
    } else {
        IO.println("Contraseña incorrecta");
    }
}
Contexto
== vs. .equals(): la trampa más importante de Java

Con los tipos primitivos (int, double, boolean), == compara los valores. Justo lo que quieres.

Con objetos (String, arrays, tus propias clases), == compara la referencia (¿es exactamente el mismo objeto en memoria?), ¡no el contenido! Para cadenas y la mayoría de los objetos necesitas .equals(). Los arrays son un caso especial: su .equals() también compara solo referencias, así que usa Arrays.equals(). Es uno de los errores de principiante más comunes en Java.

Ejercicio 4 de 4

Else-if

Para varias condiciones, usa else if:

if (nota == 1) {
    // ...
} else if (nota == 2) {
    // ...
} else {
    // todo lo demás
}

Añade el bloque else if que falta: si nota es igual a 2, imprime Bien.

Código inicial
void main() {
    int nota = 2;

    if (nota == 1) {
        IO.println("Muy bien");
    // Añade aquí: else if nota == 2 -> "Bien"
    } else {
        IO.println("Nada mal");
    }
}
Contexto
Cadenas de else-if vs. switch

Las cadenas largas de else if se vuelven un lío enseguida. A partir de unos 4 casos, un switch suele ser más fácil de leer. Desde Java 14 existen incluso las expresiones switch con sintaxis de flecha: case 1 -> "Muy bien";

El compilador convierte un switch en una tabla de saltos (las instrucciones de bytecode tableswitch / lookupswitch), así que con muchos casos un switch suele ser además más rápido que una larga cadena de if-else.

Basta de leer. Te toca.

En el tutorial escribes el código tú mismo, pulsas Ejecutar y ves al instante si tu programa funciona. Sin JDK, sin IDE, sin rollos.

Practicar If-Else en tu navegador