Saltar la navegación

3.1.- Estructura if / if-else.

La estructura if es una estructura de selección o estructura condicional, en la que se evalúa una expresión lógica o sentencia de decisión y en función del resultado, se ejecuta una sentencia o un bloque de éstas.

La estructura if puede presentarse de las siguientes formas:

Estructura if simple

if (expresión-lógica) //al ser una sola instrucción, no son necesarias las llaves

sentencia1;
if (expresión-lógica)
{

   sentencia1;

   sentencia2;

   …;

   sentenciaN;

}

Si la evaluación de la expresión-lógica ofrece un resultado verdadero, se ejecuta la sentencia1 o bien el bloque de sentencias asociado. Si el resultado de dicha evaluación es falso, no se ejecutará ninguna instrucción asociada a la estructura condicional.


Estructura if de doble alternativa

if (expresión-lógica) //al ser una sola instrucción, no son necesarias las llaves

    sentencia1;

else

    sentencia2;
if (expresión-lógica)
{

   sentencia1;

   …;

   sentenciaN;

}

else

{

   sentencia1;

   …;

   sentenciaN;

}

Si la evaluación de la expresión-lógica ofrece un resultado verdadero, se ejecutará la primera sentencia o el primer bloque de sentencias. Si, por el contrario, la evaluación de la expresión-lógica ofrece un resultado falso, no se ejecutará la primera sentencia o el primer bloque y sí se ejecutará la segunda sentencia o el segundo bloque.

Haciendo una interpretación cercana al pseudocódigo tendríamos que si se cumple la condición (expresión lógica), se ejecutará un conjunto de instrucciones y si no se cumple, se ejecutará otro conjunto de instrucciones.

Un rombo verde con la inscripción “expresión” muestra a sus lados las palabras “verdadero” y “falso”, de ellas parten dos flechas a sendos rectágulos en los que están escritas las palabras “secuencia1” y “secuencia2” respectivamente. De estos recuadros, parten dos flechas que se unen en una circunferencia pequeña y de ésta parte otra flecha hacia abajo.
José Luís García Martínez. (CC BY-NC)

Hay que tener en cuenta que la cláusula else de la sentencia if no es obligatoria. En algunos casos no necesitaremos utilizarla, pero sí se recomienda cuando es necesario llevar a cabo alguna acción en el caso de que la expresión lógica no se cumpla.

En aquellos casos en los que no existe cláusula else, si la expresión lógica es falsa, simplemente se continuarán ejecutando las siguientes sentencias que aparezcan bajo la estructura condicional if .

Los condicionales if e if-else pueden anidarse, de tal forma que dentro de un bloque de sentencias puede incluirse otro if o if-else. El nivel de anidamiento queda a criterio del programador, pero si éste es demasiado profundo podría provocar problemas de eficiencia y legibilidad en el código. En otras ocasiones, un nivel de anidamiento excesivo puede denotar la necesidad de utilización de otras estructuras de selección más adecuadas.

Cuando se utiliza anidamiento de este tipo de estructuras, es necesario poner especial atención en saber a qué if está asociada una cláusula else. Normalmente, unelseestará asociado con el if inmediatamente superior o más cercano que exista dentro del mismo bloque y que no se encuentre ya asociado a otro else.

Debes conocer

Para completar la información que debes saber sobre las estructuras if e if-else, accede al siguiente enlace. En él podrás analizar el código de un programa que realiza el cálculo de la nota de un examen de tipo test. Además de calcular el valor de la nota, se ofrece como salida la calificación no numérica de dicho examen. Para obtenerla, se combinarán las diferentes estructuras condicionales aprendidas hasta ahora.

Presta especial atención a los comentarios incorporados en el código fuente, así como a la forma de combinar las estructuras condicionales y a las expresiones lógicas utilizadas en ellas.

Autoevaluación

Pregunta

¿Cuándo se mostrará por pantalla el mensaje incluido en el siguiente fragmento de código?

If (numero % 2 == 0);

   System.out.print("El número es par /n");


Respuestas

Nunca.

Siempre.

Cuando el resto de la división entre 2 del contenido de la variable numero, sea cero.

Retroalimentación