Estructuras Selectivas en Java

En este artículo describiremos cómo se implementa la estructura algorítmica selectiva, también conocidas como estructuras condicionales,  en el lenguaje Java. Si te interesa conocer al detalle las diferentes formas de uso de esta estructura de control de flujológica de programación y entender cómo funcionan las selectivas simpledoblesanidadas y múltiples, te invitamos a que visites nuestro artículo Estructura Algorítmica Selectiva. Si te interesa conocer como se implementa esta estructura en otros lenguajes de programación, te invitamos a que accedas a los siguientes enlaces en donde podrás ver la implementación de esta estructura en ANSI C y Python.

El análisis de la estructura selectiva simple se encuentra sintetizado en el vídeo «Selectiva Simple en Java» en nuestro canal de YouTube. Te invitamos a que lo visites.

A continuación presentamos la instrucción selectiva simple en Java. Se implementa mediante la instrucción \texttt{if} como en la mayoría de los lenguajes de programación. La \texttt{condición} va inmediatamente después del \texttt{if} y obligatoriamente entre paréntesis.

En relación a la condición, esta deberá ser una proposición lógica. Recordando que Java implementa como tipo de dato primitivo el \texttt{boolean}. El tipo de dato \texttt{boolean} puede contener únicamente dos valores  \texttt{true} o \texttt{false}.

En relación a las llaves, éstas son de uso obligatorio cuando el conjunto de instrucciones está formado por dos o más instrucciones. Cuando el conjunto de instrucciones está formado por una sola instrucción, las llaves son opcionales.

En Java, cada instrucción finaliza con un punto y coma.

if (condición){
    conjunto de instrucciones;
}
 

Estructura Selectiva Doble

El análisis de la estructura selectiva doble se encuentra sintetizado en el vídeo «Selectiva Doble en Java» en nuestro canal de YouTube. Te invitamos a que lo visites.

A continuación presentamos la instrucción selectiva doble en Java. La selectiva doble tiene dos caminos El camino que se ejecuta cuando la \texttt{condición} es verdadera, se implementa mediante la instrucción \texttt{if} como en la selectiva simple. La \texttt{condición} va inmediatamente después del \texttt{if} y obligatoriamente entre paréntesis. El camino que se ejecuta cuando la \texttt{condición} es falsa, se implementa mediante la instrucción \texttt{else}.

En relación a las llaves de ambos conjuntos de instrucciones, éstas son de uso obligatorio cuando el conjunto de instrucciones está formado por dos o más instrucciones. Cuando el conjunto de instrucciones está formado por una sola instrucción, las llaves son opcionales..

if (condición){
    conjunto de instrucciones V;
}
else{
    conjunto de instrucciones F;
} 

Estructura Selectiva Anidada​

El análisis de la estructura selectiva anidada se encuentra sintetizado en el vídeo «Selectiva Anidada en Java» en nuestro canal de YouTube. Te invitamos a que lo visites.

A continuación presentamos un posible uso de selectivas anidadas en Java. Como podrá notar, se tiene una selectiva doble (selectiva con la \texttt{condición2}) dentro de una selectiva doble (selectiva con la \texttt{condición1}). Esto permite que un algoritmo pueda decidir sobre más de dos flujos posibles, lo cual es muy común en el diseño algorítmico.

La instrucción selectiva es considerada como una única instrucción por lo que no es necesario delimitarla entre llaves (\texttt{\{} y \texttt{\}}) cuando se anida.

if (condición1)
    if (condición2){
        conjunto de instrucciones V2;
    }
    else{
        conjunto de instrucciones F2;
    }
else{
    conjunto de instrucciones F1;
} 

Estructura Selectiva Múltiple​

En realidad, Java no implementa de forma nativa una estructura selectiva múltiple sino un interruptor de control de flujo. Pero haciendo una pequeña adecuación, se puede comportar como selectiva múltiple.

Se implementa mediante la instrucción \texttt{switch} al igual que en ANSI C. El \texttt{selector} va inmediatamente después del \texttt{switch} y obligatoriamente entre paréntesis. Los distintos bloques de instrucciones o caminos, se etiquetan con mediante la palabra reservada \texttt{case} seguido del valor que el  \texttt{selector} reconocerá.

Para que la instrucción \texttt{switch} funcione como una selectiva múltiple, es necesario que al final de cada bloque de instrucciones, se incluya la instrucción \texttt{break}. La instrucción \texttt{break} es una instrucción de ruptura de flujo, y si no la ponemos, el flujo continuará con los bloques que se encuentran debajo.

Finamente se cuenta con \texttt{default}. Esta cláusula es opcional y se usa cuando se requiere controlar situaciones de valores que no son reconocidos por el \texttt{selector}.

switch(selector) 
{
    case valor1:
        instrucciones 1; 
        break;
    case valor2: 
        instrucciones 2;
        break;
    case valor3: 
        instrucciones 3;
        break;
    ...
    case valorn;    
        instrucciones n;
        break;
    default: 
        instrucciones por defecto;
} 

Conclusión

En este artículo hemos presentado la implementación de la estructura algorítmica selectiva en Java. Se han descrito la implementación de las diferentes formas de uso de esta estructura poniendo énfasis en las selectivas simpledoblesanidadas y múltiples. Si te interesa conocer como se implementa esta estructura en otros lenguajes de programación, te invitamos a que accedas a los siguientes enlaces en donde podrás ver la implementación de esta estructura en ANSI C y Python.

Si te interesa profundizar en Java, el mejor libro que hay es Effective Java de Joshua Bloch. Uno de los libros favoritos de los que se inician en Java es Java: Learn Java in One Day and Learn It Well de  Jamie Chan.