Easier to read with cream paper, a tint, more contrast or larger text? Choose your colours and text, once, for every page.

Vista previa

Decidir con if y else

Esta es la primera página de la lección. Léela y prueba las actividades. El resto está en el curso completo.

40 minutos

El conductor del autobús decide

Subes al autobús y enseñas tu abono. El conductor mira tu edad y decide: gratis, tarifa joven o tarifa normal.

Mira una cosa y elige un camino. Todos lo hacemos cada día.

Un programa también puede elegir. Hoy aprendes a enseñarle a decidir.

Palabras clave

PalabraQué significaEjemplo
CondiciónUna pregunta que solo tiene dos respuestas: true o false.age < 18
ifSignifica si. Hace algo solo cuando la condición es true.if (age < 18)
elseSignifica si no. Hace algo cuando la condición es false.else { ... }
CompararUsar signos como < o > para hacer una pregunta con números.age >= 18
BloqueLas líneas que van entre llaves.{ ... }

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Preguntas con números

Para decidir, primero hace falta una pregunta. Se escribe con un signo de comparación.

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

La respuesta es siempre un booleano: true o false.

Pruébalo: preguntas con edad

Código: java
public class Main {
    public static void main(String[] args) {
        int age = 17;

        System.out.println(age < 18);
        System.out.println(age >= 18);
        System.out.println(age == 17);
        System.out.println(age != 17);

        // Cambia la edad a 18 y mira qué cambia.
    }
}

Un igual guarda, dos igual preguntan

Advertencia

age = 17 guarda un 17 en la caja. age == 17 pregunta si la caja vale 17. Si pones un solo igual en una pregunta, Java da un error.

Ejemplo resuelto: preguntas con edad 17

PreguntaRespuestaPor qué
age < 18true17 es menor que 18.
age >= 18false17 no llega a 18.
age == 17trueLa caja vale justo 17.
age != 17falseLa caja sí vale 17.
age > 20false17 no es mayor que 20.

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Si pasa esto, haz aquello

Con if pones la pregunta entre paréntesis. Después, entre llaves, lo que se hace si la respuesta es true.

Con else pones lo que se hace si la respuesta es false.

Solo se ejecuta uno de los dos caminos.

Pruébalo: mayor o menor

Código: java
public class Main {
    public static void main(String[] args) {
        int age = 15;

        if (age < 18) {
            System.out.println("Eres menor de edad.");
        } else {
            System.out.println("Eres mayor de edad.");
        }

        // Prueba con 18 y con 40.
    }
}

Más de dos caminos

A veces hay tres o cuatro caminos. Entonces añades else if, que significa "y si no, pregunta otra cosa".

Java mira las preguntas de arriba abajo. Entra en la primera que da true y se salta el resto.

Ejemplo resuelto: la tarifa del autobús

EdadPrimera pregunta que da trueTarifa en euros
8age < 120.0
12age < 260.6
25age < 260.6
26age < 651.2
64age < 651.2
65ninguna: entra else0.5

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Pruébalo: cuánto cuesta el billete

Código: java
public class Main {
    public static void main(String[] args) {
        int age = 30;
        double fare;

        if (age < 12) {
            fare = 0.0;
        } else if (age < 26) {
            fare = 0.6;
        } else if (age < 65) {
            fare = 1.2;
        } else {
            fare = 0.5;
        }

        System.out.println("Tu billete cuesta " + fare + " euros.");

        // Prueba con 12, con 26 y con 65.
    }
}

El orden de las preguntas importa

Advertencia

Si pones age < 65 la primera, un niño de 8 años entra ahí y paga 1.2. Pon siempre primero la pregunta más estrecha.

Y con textos

Con textos no se usa ==. Se usa equals, como viste en Trabajar con texto.

Por ejemplo: if (drink.equals("café")).

La lección continúa

7 partes más de esta lección están en el curso completo, con los ejercicios y la comprobación final. Una cuenta te da todo.