Post

Java / Básico / If... Else

If... Else en Java

Java / Básico / If... Else

Las condiciones y las sentencias if te permiten controlar el flujo de tu programa, decidiendo qué código se ejecuta y qué código se omite.

Piénsalo como en la vida real: si hace sol, nos vamos de ruta. De lo contrario, nos quedamos en casa :(

Cada declaración de if necesita una condición que dé como resultado true o false.

Esto significa que las declaraciones if trabajan de la mano con valores boolean.

if

1
2
3
4
5
boolean haceSol = true;

if (haceSol) {
  System.out.println("!Nos vamos de ruta!");
}

Por lo general, las condiciones se crean utilizando operadores de comparación, dándonos una gran abanico de posibilidades:

1
2
3
4
if (20 > 18) { // ¿20 es mayor que 18?
  System.out.println("20 es mayor que 18"); // Si es verdadero imprime: 20 es mayor que 18
}
// Si es falso el programa no realizara nada

Caso menor que:

1
2
3
4
5
6
var x = 10;
var y = 5;
if (x < y) { // ¿Es x menor que y?
  System.out.println("x es menor que y"); // Si es verdadero imprime: x es menor que y
}
// Si es falso el programa no realizara nada

Caso igual que:

1
2
3
4
5
6
var x = 100;
var y = 200;
if (x == y) { // ¿Es x igual que y?
  System.out.println("x es igual que y"); // Si es verdadero imprime: x es igual que y
}
// Si es falso el programa no realizara nada

Caso mayor o igual que:

1
2
3
4
5
6
var x = 400;
var y = 10;
if (x >= y) { // ¿Es x mayor o igual que y?
  System.out.println("x es mayor o igual que y"); // Si es verdadero imprime: x es mayor o igual que y
}
// Si es falso el programa no realizara nada

En este ultimo caso para que se imprima el mensaje x tendría que ser exactamente igual que y o mayor que y para que la condición sea verdadera y se pueda imprimir el mensaje.

else

La instrucción else te permite ejecutar un bloque de código cuando la condición en el if es falsa.

1
2
3
4
5
6
7
boolean haceSol = true;

if (haceSol) {
  System.out.println("!Nos vamos de ruta!");
} else {
  System.out.println("Nos vamos quedamos en casa :(");
}

Otro ejemplo:

1
2
3
4
5
6
7
8
var edad = 22;
var edadMotoBajaCc = 16;

if (edad >= edadMotoBajaCc) {
  System.out.println("Tienes edad suficiente para ir en una moto de baja Cilindrada");
} else {
  System.out.println("Aún no tienes edad suficiente para ir en moto");
}

else if

La instrucción else if se usa para especificar una nueva condición que se comprobara si la primera condición es falsa.

1
2
3
4
5
6
7
8
9
10
11
var edad = 22;
var edadMotoBajaCc = 16;
var edadMotoAltaCc = 20;

if (edad >= edadMotoAltaCc) {
  System.out.println("Tienes edad suficiente para ir en una moto de alta cilindrada");
} else if (edad >= edadMotoBajaCc) {
  System.out.println("Tienes edad suficiente para ir en una moto de baja cilindrada");
} else {
  System.out.println("Aún no tienes edad suficiente para ir en moto");
}

En este caso concreto hemos realizado un programa que acota muy bien el rango de edades para saber que moto podemos llevar.

  • [0–15] Sin edad suficiente
  • [16–19] Baja cilindrada
  • [20, +∞) Alta cilindrada

if abreviado

También existe una forma abreviada de if else, que se conoce como ternaria, ya que solo consta de 3 operandos.

variable = (condicion) ? expresionVerdadera :  expresionFalsa;
1
2
3
4
var edad = 22;

String resultado = (edad >= 18) ? "Mayor de edad" : "Menor de edad";
System.out.println(resultado);

if anidado

También puedes colocar un if dentro de otro if. Esto se denomina como: sentencia if anidada.

Un if anidado te permite comprobar una condición solo si otra condición es verdadera.

1
2
3
4
5
6
7
8
9
10
11
12
13
var edad = 22;
var edadMinima = 16;
var carnet = true;

if (edad >= edadMinima) {
  if (carnet) {
    System.out.println("Cumples los requisitos para ir en moto");
  } else {
    System.out.println("Necesitas el carnet para poder ir en moto");
  }
} else {
  System.out.println("Aún no tienes edad suficiente para ir en moto");
}

Operadores lógicos

Puedes combinar o invertir condiciones utilizando operadores lógicos. Estos trabajan juntos con if, else, y else if para tomar decisiones más complejas.

  • &&(Y) - todas las condiciones deben ser verdaderas
  • ||(O) - al menos una condición debe ser verdadera
  • !(NOT) - invierte una condición (verdadero = falso, falso = verdadero)
1
2
3
4
5
6
7
int a = 200;
int b = 33;
int c = 500;

if (a > b && c > a) {
  System.out.println("Todas las condiciones son verdaderas");
}
1
2
3
4
5
6
7
int a = 200;
int b = 33;
int c = 10;

if (a > b || c > a) {
  System.out.println("Alguna la la condición es verdadera");
}
1
2
3
4
5
6
int a = 33;
int b = 200;

if (!(a > b)) { // Prueba si a es no mayor que b
  System.out.println("a NO es mayor que b");
}

Ejemplo real

This post is licensed under CC BY 4.0 by the author.