Programación en Java/Estructuras de selección

← Estructuras de control Estructuras de selección Sentencia if-else →


A menudo nos encontraremos con programas o algoritmos en donde las acciones se ejecutarán de acuerdo a una condición. Tenemos dos o mas alternativas de acción y solo una de estas tendrá lugar.

Por ejemplo, supongamos que estamos conduciendo un vehículo y en un cruce de calles nos encontramos con un semáforo. Si la luz del semáforo es roja nos detenemos. De otro modo seguiremos manteniendo la velocidad. Aquí se nos presentan dos alternativas : continuar con la marcha o frenar. Estas acciones se realizarán según una condición: si la luz del semáforo es roja. Podemos especificar este ejemplo mediante un pseudolenguje que describa la condición.

si luz_del_semáforo = rojo entonces 



velocidad_del_vehículo = 0 

Estamos frente a una selección simple: tenemos dos alternativas. Este tipo de selección la condición toma un valor lógico de verdadero o falso. Se tienen que especificar las acciones que deben ocurrir si la condición es verdadera. Opcionalmente se puede indicar que debe ocurrir si la condición es falsa. Para lo último veamos un ejemplo.

si luz = rojo entonces frenar 


de otro modo seguir con la misma velocidad. 

Imaginemos que estamos en un día de mucho calor y deseamos tomar un refresco. Para ello nos dirigimos a una máquina expendedora de gaseosas, insertamos una moneda y elegimos el tipo de bebida. Generalmente una máquina expendedora tiene un panel con botones para realizar la elección. Internamente dispone de un programa que suelta una lata de acuerdo al botón pulsado. El algoritmo puede ser similar a esto:


Selección de acuerdo al botón presionado: 


En el caso de "1" expulsar lata de Orange Duke. 
En el caso de "2" expulsar lata de Lemmon Duke.
En el caso de "3" expulsar lata de Cola Duke. 
En el caso de "4" expulsar lata de Coffee Duke.
En el caso de "5" expulsar lata de Cherry Duke. 

Tenemos varias alternativas y la acción realizada dependerá de un valor discreto. Esta es una selección múltiple.