if y else en Java
Hasta ahora guardabas true o false, o construías una sola respuesta a partir de otras dos con marcas como &&. Esas páginas terminaban con un valor bajo un nombre. Esta página usa ese valor para otra cosa: Java mira true o false y ejecuta solo un grupo de líneas. La herramienta para esa elección es if. El otro grupo, cuando lo necesitas, es else.
Un boolean decide qué bloque se ejecuta
Crea un archivo de programa pequeño llamado Gate.java. El public class de la primera línea debe coincidir con el nombre del archivo: public class Gate. No dejes una clase Mint antigua en este archivo; el compilador espera que el nombre de la clase y el del archivo coincidan.
Dentro de main, guarda un boolean antes de elegir un camino:
boolean ready = true;
Esa línea no imprime nada. Solo da al nombre ready la palabra true. ready empieza con una r minúscula. No hay comillas alrededor de true. El punto y coma termina la línea de guardado. Después viene la elección misma:
if (ready) {
System.out.println("pass");
} else {
System.out.println("wait");
}
La palabra if va en minúsculas: i, luego f. No es un nombre que inventes tú. Un espacio después de if está bien; if(ready) sin espacio también compila. Dentro de los paréntesis se sienta el nombre ready — sin comillas, sin ==, sin &&. Cuando ready guarda true, Java entra en el primer par de llaves y ejecuta System.out.println("pass");. Las comillas alrededor de pass marcan letras para la pantalla. Esas letras — p, a, s, s — son lo que debes ver, una línea. El bloque else se omite por completo en esta ejecución. Guarda el archivo antes de compilar.
Programa que imprime pass
Esta es la versión que compilas primero.
public class Gate {
public static void main(String[] args) {
boolean ready = true;
if (ready) {
System.out.println("pass");
} else {
System.out.println("wait");
}
}
}
Desde la carpeta que contiene Gate.java, escribe javac Gate.java. Cuando las llaves y los paréntesis coinciden, javac no escribe ninguna línea propia. Luego escribe java Gate — no java Gate.java. Quita la terminación .java del segundo comando. Los mismos dos comandos funcionan en Windows y en macOS; esta página no depende de otra ortografía de shell para ninguno de los dos sistemas. El programa debe imprimir pass y terminar. No debe pedirte que escribas. Si la terminal se queda esperando entrada del teclado, todavía hay una llamada nextLine de un ejercicio anterior en el archivo. Borra esa llamada y deja el boolean más el if / else de arriba. No necesitas una instalación nueva del JDK por una línea incorrecta en pantalla.
¿Por qué pass y no wait? Porque la prueba entre paréntesis era true. Java no imprime la palabra true en esta ejecución. Imprime lo que println ejecuta dentro de las llaves elegidas. Piensa en tres trabajos: los paréntesis sostienen la prueba, las llaves agrupan las líneas que van juntas, y println es la única parte que escribe en la pantalla. Si la pantalla muestra true, probablemente sigues imprimiendo el propio boolean, o un demo antiguo de marcas de combinación sigue en main. Sustituye esa línea de escritura por println("pass") dentro de las llaves del if cuando ready es true.
Cuando ready es false
Cambia solo el valor guardado:
boolean ready = false;
Deja la estructura if / else como está. Ahora la prueba falla, así que Java salta las primeras llaves y ejecuta las llaves de else. La pantalla debe mostrar wait, una línea.
public class Gate {
public static void main(String[] args) {
boolean ready = false;
if (ready) {
System.out.println("pass");
} else {
System.out.println("wait");
}
}
}
Compila y ejecuta otra vez: javac Gate.java, luego java Gate. Debes ver wait. Fíjate en que no reescribiste la línea if ni la línea else — solo cambió el valor bajo ready. Después de ver wait, puedes volver a poner boolean ready = true; para regresar al primer demo. Ambas versiones son Java válido. Enseñan la misma forma if / else con pruebas opuestas.
Lee la ejecución con false una vez más en orden. ready guarda false. Se pregunta if (ready). La respuesta es false, así que se omiten todas las líneas entre la primera { y su } pareja — incluido println("pass"). El control continúa en else. Las líneas entre las llaves de else se ejecutan, así que corre println("wait"). Una línea en la pantalla. No hay segunda línea. La palabra false misma no aparece a menos que la imprimas a propósito.
Reglas que mantienen clara la elección
Los paréntesis alrededor de la prueba son obligatorios. Escribir if ready { … } sin paréntesis hace fallar a javac. La prueba de esta página es un boolean: un nombre como ready, o las palabras sueltas true o false sin comillas. if ("true") pone letras donde corresponde una prueba boolean; javac informa un error. Quita las comillas, o sigue usando un nombre boolean. Un número entero solo como if (1) no es la forma en que esta lección guarda la preparación; quédate con true, false o un nombre boolean.
Las llaves importan para leer la lección. Esta página siempre envuelve cada camino en { }. Java permite un if de una línea sin llaves, pero en cuanto añades una segunda línea bajo ese if, solo la primera línea sigue unida a la prueba si no hay llaves. Los principiantes pierden ese detalle con facilidad. Mantén llaves en ambos demos para que cada camino sea obvio: una llave de apertura después de la prueba, una de cierre antes de else, luego otro par para else.
else pertenece a un if. Un else solo hace fallar a javac. En esta página un if tiene un else. Puedes escribir if sin else cuando solo te importa el camino true; el primer demo de enseñanza sigue mostrando ambos lados para que veas la bifurcación. Elegir entre muchos valores fijos es switch en una página posterior — no inventes una tercera rama con otro else aquí.
También puedes escribir la prueba sin un nombre aparte: if (true) { … } else { … }. Eso compila y se ejecuta. Los demos usan ready para que veas un boolean guardado dirigiendo la elección, que es cómo se ven los programas después de saber guardar true y false. Comparaciones como if (score > 10) llegan cuando te sientes cómodo con esta bifurcación true / false; esta página mantiene la prueba como un valor boolean que ya entiendes.
📊 ready y la pantalla
| ready | Pantalla |
|---|---|
| true | pass |
| false | wait |
Usa la tabla como comprobación después de una ejecución, no en lugar de una. true con el primer demo imprime pass. false con el segundo demo imprime wait. Si de algún modo corren las dos líneas println, las llaves o el emparejamiento if / else están mal — corrige la estructura en lugar de reinstalar Java.
Una confusión habitual es imprimir la sintaxis misma: System.out.println("if (ready)");. Eso escribe los caracteres if (ready). No elige un camino. Otra confusión es dejar demos de && o == en el mismo main y preguntarse por qué la pantalla muestra true en lugar de pass. El main de esta sesión debe contener solo el boolean y el if / else.
Qué puedes hacer ahora
Puedes guardar un boolean, ponerlo en if (…) y dar a cada resultado su propio bloque con llaves. Cuando la prueba es true, corre un println; cuando es false, corre el println de else. La página siguiente es switch, donde varios valores fijos tienen cada uno su propio case en lugar de una sola bifurcación true / false.
🧠 Pon a Prueba tu Conocimiento
Pon a Prueba tu Conocimiento
Ponte a prueba con este cuestionario interactivo y descubre qué tan bien entiendes el tema
📝 Instrucciones
- Lee cada pregunta cuidadosamente
- Selecciona la mejor respuesta para cada pregunta
- Puedes repetir el quiz tantas veces como quieras
- Tu progreso se mostrará en la parte superior