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
| Palabra | Qué significa | Ejemplo |
|---|---|---|
| Condición | Una pregunta que solo tiene dos respuestas: true o false. | age < 18 |
| if | Significa si. Hace algo solo cuando la condición es true. | if (age < 18) |
| else | Significa si no. Hace algo cuando la condición es false. | else { ... } |
| Comparar | Usar signos como < o > para hacer una pregunta con números. | age >= 18 |
| Bloque | Las 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
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
| Pregunta | Respuesta | Por qué |
|---|---|---|
| age < 18 | true | 17 es menor que 18. |
| age >= 18 | false | 17 no llega a 18. |
| age == 17 | true | La caja vale justo 17. |
| age != 17 | false | La caja sí vale 17. |
| age > 20 | false | 17 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
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
| Edad | Primera pregunta que da true | Tarifa en euros |
|---|---|---|
| 8 | age < 12 | 0.0 |
| 12 | age < 26 | 0.6 |
| 25 | age < 26 | 0.6 |
| 26 | age < 65 | 1.2 |
| 64 | age < 65 | 1.2 |
| 65 | ninguna: entra else | 0.5 |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Pruébalo: cuánto cuesta el billete
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é")).