Estas estructuras permiten al programador modificar el flujo de un programa. Dentro de estas estructuras identificamos las siguientes:
-
if
Se corresponde con la estructura más simple de todas. Con esta estructura se ejecuta un bloque de sentencias si se cumple una determinada condición, condición que va implícita en el if. Si dicha condición es falsa no se ejecutan el bloque de sentencias de la estructura if. Su sintaxis es la siguiente:

|
1 2 3 4 5 6 7 |
if (condición) { bloque_de_sentencias; } |
La condición es una expresión que devuelve un valor true o false. Si el valor es true se ejecutan el bloque_de_sentencias y si es false no se ejecuta y el programa continua normalmente. Observa el siguiente código:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
int x; x=5; if (x>9) { System.out.println(“Has sacado muy buena nota); } System.out.println(“Espero que hayas obtenido buena nota”); |
En el código anterior creamos la variable x de tipo entero y a continuación le asignamos el valor 5. Continuamos hacia la condición de la estructura if: ¿5>9?, esto no es cierto 5 no es mayor que nueve, luego devuelve un false y no entra dentro de la estructura if, continua su flujo normal saltándose la estructura y sacando por pantalla únicamente “Espero que hayas obtenido buena nota”. Vamos a cambiar el valor de x a 10:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
int x; x=10; if (x>9) { System.out.println(“Has sacado muy buena nota); } System.out.println(“Espero que hayas obtenido buena nota”); |
Creamos la variable x de tipo entero y le asignamos un 10. Vamos a la condición de la estructura if: ¿10>9?, en este caso es true que 10 es mayor que 9, como la condición ha devuelto true, si entramos a ejecutar las sentencias del if. Obtendríamos un primer mensaje “Has sacado muy buena nota” y a continuación otro mensaje “Espero que hayas obtenido buena nota”.
-
if else
Es muy parecida a la anterior, pero ahora tenemos dos bloques de sentencias mutuamente excluyentes, es decir, o se ejecuta un bloque o se ejecuta otro bloque; pero nunca se podrán ejecutar los dos bloques de sentencias. Si se cumple la condición, se ejecuta el bloque de sentencias asociado a if; si no se cumple la condición se ejecuta el bloque de sentencias de la parte else. Su sintaxis es la siguiente:

|
1 2 3 4 5 6 7 8 9 10 11 |
if (condición) { bloque_sentencias_parte_if; } else { bloque_sentencias_parte_else; } |
Por ejemplo, si queremos saber si un número es par o impar simplemente tenemos que dividir el número entre 2 y fijarnos en su resto de la división. Si dicho resto es 0 el número es par porque es divisible entre 2; si bien el resto de la división entre 2 no es cero el número es impar porque no es divisible entre 2. Para usar el operador resto en Java hacemos uso de ‘%’. Observa el código siguiente:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
int x; x=10; if (x % 2 ==0){ System.out.println(“El numero es par”); } else{ System.out.println(“El numero es impar”); } |
En el código anterior 10 dividido entre 2 cae a 5 y resto 0, con lo cual ejecutaría la parte correspondiente al if porque se cumple la condición.
Además este tipo de estructura puede anidarse. Imagina que necesitamos calificar en función a los siguientes criterios:
- 10 -> Matrícula de honor.
- 9 -> Sobresaliente.
- 7,8 -> Notable.
- 6 -> Bien.
- 5 -> Suficiente.
- 4,3,2,1,0 -> Suspenso.
Una posible codificación sería:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
if ( x == 10){ System.out.println(“Matrícula de Honor”); } else{ if (x==9){ System.out.println(“Sobresaliente”); } else{ if (x>=7){ System.out.println(“Notable”); } else{ if (x==6){ System.out.println(“Bien”); } else{ if (x==5){ System.out.println(“Suficiente”); } else{ System.out.println(“Suspenso”); } } } } } |
-
if else if
Su sintaxis general es la siguiente:

|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
if (condicion_1) { bloque_de_sentencias1; } else if (condicion_2){ bloque_de_sentencias2; } else { bloque_sentencias_else; } |
Si codificamos el ejemplo anterior con la estructura if else if, quedaría de la siguiente forma:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
if ( x == 10){ System.out.println(“Matrícula de Honor”); } else if (x==9){ System.out.println(“Sobresaliente”); } else if (x>=7){ System.out.println(“Notable”); } else if (x==6){ System.out.println(“Bien”); } else if (x==5){ System.out.println(“Suficiente”); } else{ System.out.println(“Suspenso”); } |
Ejemplo:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
package app.ejemplo; public class EjemploIfElse { public static void main(String[] args) { // comprobar si un numero es par int numero = 7; if (numero % 2 == 0) System.out.println("El numero es par"); else System.out.println("Es impar"); if (numero % 3 == 0){ System.out.println("Es multiplo de 3"); } if (numero == 1){ System.out.println("Es lunes"); }else if(numero == 2){ System.out.println("Es martes"); }else if(numero == 3){ System.out.println("Es miercoles"); }else if(numero == 4){ System.out.println("Es jueves"); }else if(numero == 5){ System.out.println("Es viernes"); }else if (numero == 6){ System.out.println("Es sabado"); }else if (numero == 7){ System.out.println("Es domingo"); }else{ System.out.println("No es un dia valido"); } } } |