CodeGym /Cursos /JAVA 25 SELF /Operador condicional: if else

Operador condicional: if else

JAVA 25 SELF
Nivel 3, Lección 1
Disponible

1. Operador if else

Las aplicaciones servirían de poco si hicieran siempre lo mismo, independientemente de cómo cambien las circunstancias externas. Un programa debe saber adaptarse a distintas situaciones y hacer unas acciones en unos casos y otras — en otros.

En Java esto se implementa mediante el operador condicional — las palabras clave if y else, que permiten ejecutar distintos bloques de instrucciones en función de la veracidad de la condición.

El operador condicional consta de tres partes: condición, instruccion 1 y instruccion 2. Si la condición es verdadera (cierta), se ejecuta la instruccion 1; en caso contrario se ejecuta la instruccion 2. Las instrucciones nunca se ejecutan a la vez. El aspecto general de este operador es:


if (condicion)
   instruccion1;
else
   instruccion2;
Operador condicional if-else

if se traduce como «si», y else como «si no». En lenguaje humano se puede expresar así:


Si condicion es verdadera, entonces
   ejecutar instruccion1;
si no
   ejecutar instruccion2;
Operador condicional if-else en lenguaje humano

Ejemplos:

// En pantalla se mostrará: Aún eres un niño

int age = 17;
if (age < 18)
   System.out.println("Aún eres un niño");
else
   System.out.println("Ya eres adulto");
// En pantalla se mostrará: Templado

int temperature = 5;
if (temperature < 0)
   System.out.println("Hace mucho frío");
else
   System.out.println("Templado");
// En pantalla se mostrará: Puedes presentarte al examen de conducir

int age = 18;
if (age == 18)
   System.out.println("Puedes presentarte al examen de conducir");
else
   System.out.println("Puedes ahorrar para un coche");

2. Bloque de instrucciones

Si, al cumplirse (o no cumplirse) una condición, quieres que tu programa ejecute varias instrucciones, puedes agruparlas en un bloque de instrucciones.

Para agrupar instrucciones en un bloque, hay que «envolverlas» con llaves. Así es como se ve en términos generales:


{
   instruccion1;
   instruccion2;
   instruccion3;
}

Puede haber tantas instrucciones en el bloque como quieras. Incluso cero.

Ejemplos de combinación del operador if-else con un bloque de instrucciones:

// En pantalla se mostrará: Aún eres un niño. No discutas con los adultos

int age = 17;
if (age < 18)
{
   System.out.println("Aún eres un niño");
   System.out.println("No discutas con los adultos");
}
else
{
   System.out.println("Ya eres adulto");
   System.out.println("Vaya juventud");
}
// En pantalla se mostrará: Templado

int temperature = 5;
if (temperature < 0)
{
   System.out.println("Hace mucho frío");
   System.out.println("Ponte gorro");
}
else
   System.out.println("Templado");
// Se ejecutará un bloque de instrucciones vacío. No se imprimirá nada. 

int age = 21;
if (age == 18)
   System.out.println("Puedes obtener el carné de conducir");
else
{
}

3. Sintaxis abreviada del operador if

Si no hay código en el bloque else, se puede omitir. Entonces el operador if tendrá este aspecto:


if (condicion)
{
    instruccion1;
}
Operador condicional if

Ejemplo:

int age = 19;
if (age >= 18)
{
    System.out.println("¡Eres mayor de edad!");
}

¿Cómo funciona?

Si la condición es verdadera, se ejecuta el bloque de código. Si es falsa, no ocurre nada: el programa continúa.

El bloque else existe en el programa, pero está vacío (no hay ninguna instrucción entre las llaves). Puedes simplemente quitarlo: en el programa no cambiará nada.

4. Combinación de condiciones: else if

A veces no basta con comprobar «sí/no», sino que hay que elegir entre varias opciones. Ahí ayuda la combinación else if:

if (condicion1)
{
    // Se ejecuta si condicion1 es verdadera
}
else if (condicion2)
{
    // Se ejecuta si condicion2 es verdadera y condicion1 — falsa
}
else
{
    // Se ejecuta si ninguna de las condiciones anteriores se cumple
}

Ejemplo:

int hour = 13;
if (hour < 12)
{
    System.out.println("¡Buenos días!");
}
else if (hour < 18)
{
    System.out.println("¡Buenas tardes!");
}
else
{
    System.out.println("¡Buenas noches!");
}

¿Qué ocurre aquí?

  • Si la hora es antes de las 12 — es por la mañana.
  • Si es de 12 a 18 — es por la tarde.
  • Si es mayor — es por la noche.
  • ¡El programa elige solo UNA de las opciones! En cuanto una condición encaja, las demás ni siquiera se comprueban.

5. Ilustración esquemática: diagrama de flujo de ramificación

Así se ve en forma de diagrama de bloques:

Y si hay varias condiciones:

Esto recuerda mucho a las bifurcaciones en los juegos de rol de mesa: vas a la izquierda — una cosa, a la derecha — otra, recto — ¡otra más!

6. ¿Qué condiciones se pueden comprobar?

Dentro de los paréntesis después de if debe haber una expresión LÓGICA — cuyo resultado sea true o false.

Operadores de comparación principales:

Operador Significado Ejemplo
==
Igual
x == 5
!=
Distinto
x != 10
>
Mayor que
x > 0
<
Menor que
age < 18
>=
Mayor o igual que
score >= 100
<=
Menor o igual que
count <= 50

Ejemplos de condiciones:

if (number == 10)
if (age != 18)
if (temperature > 36)
if (balance <= 0)

Fíjate: = (un solo signo) — es asignación. == (dos signos) — es comparación. ¡Es uno de los errores más populares entre los principiantes! Si por descuido escribes:

if (x = 5) // ¡ERROR!

— el compilador te regañará, y con toda la razón.

7. Trabajo con cadenas en condiciones

La comparación con == en Java funciona correctamente para números. No es recomendable comparar números de coma flotante con ==, y no se deben comparar cadenas con == — para cadenas usa el método equals(), que compara el contenido de las cadenas (y no las referencias).

Hablaremos más sobre los matices de la comparación de cadenas más adelante. Y cómo compararlas correctamente — en el ejemplo de abajo:

String password = console.nextLine();
if (password.equals("qwerty"))            // llamamos al método equals() y le pasamos la segunda cadena
{
    System.out.println("¡Has iniciado sesión!");
}

8. Aspectos y matices:

Llaves: ¿son necesarias o no?

Si después de if o else hay solo una instrucción, se pueden omitir las llaves:

if (age > 18)
    System.out.println("¡Tienes más de 18!");

// Pero es más seguro ESCRIBIRLAS SIEMPRE:
if (age > 18)
{
    System.out.println("¡Tienes más de 18!");
}

Consejo: escribe siempre con llaves. Esto te protegerá de un montón de errores, especialmente al ampliar el código.

Errores lógicos: ¡cuidado con las condiciones!

Si escribes así:

if (age > 18)
    System.out.println("¡Tienes más de 18!");
    System.out.println("¡Bienvenido!");

El compilador leerá este código así:

if (age > 18)
{
    System.out.println("¡Tienes más de 18!");
}

System.out.println("¡Bienvenido!");

La segunda línea siempre se ejecutará — las llaves son necesarias para que ambas líneas estén dentro de la «rama».

1
Tarea
JAVA 25 SELF, nivel 3, lección 1
Bloqueada
Compra de entradas de cine 🎬
Compra de entradas de cine 🎬
1
Tarea
JAVA 25 SELF, nivel 3, lección 1
Bloqueada
Comprobación del tiempo en la calle ❄️
Comprobación del tiempo en la calle ❄️
1
Tarea
JAVA 25 SELF, nivel 3, lección 1
Bloqueada
Desbloqueo de la cuenta 🔒
Desbloqueo de la cuenta 🔒
1
Tarea
JAVA 25 SELF, nivel 3, lección 1
Bloqueada
Saludo según la hora del día ☀️
Saludo según la hora del día ☀️
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION