Cuando el programador desea especificar dos caminos alternativos en un
algoritmo se deben utilizar estructuras de decisión.
Una estructura de decisión dirige el flujo de un programa en una cierta dirección, de entre dos posibles, en función de un valor booleano. En lenguajes de programación estructurados la estructura condicional es la IF / ELSE. La cláusula
ELSE en esta estructura es optativa. La forma en que trabaja esta sentencia resulta casi evidente a partir de la lógica de la lengua inglesa: Si (IF) la expresión booleana resulta cierta (TRUE), entonces la sentencia se ejecuta. Si la expresión booleana resulta falsa (FALSE), el control pasa a la siguiente (en orden descendente) instrucción del programa.
Estructura Sencilla:
Forma general de uso:
Si (Condición) entonces
Ejecuta bloque de instrucciones uno
Si_no
Ejecuta bloque dé instrucciones dos
Fin si
Una estructura de decisión por sencilla o compleja que sea debe tener solo una entrada y una salida.
Un bloque de instrucciones (Denominado tarea 1 y 2 en el diagrama anterior) puede ser un conjunto de estructuras de cualquier clase (asignación, Decisión, Cíclicas o de selección múltiple) que se ejecutan unas tras de otras.
El bloque de instrucciones tarea1 se ejecuta en caso de que la condición que se
coloque sea verdadera, En caso de ser falsa la evaluación de la condición se ejecuta el bloque de instrucciones tarea2.
Estructuras de decisión anidadas:
Una estructura de decisión puede estar anidada dentro de otra estructura de decisión. Hay que tener en cuenta que el anidamiento sea total.
El inicio y el final de la estructura anidada debe quedar totalmente dentro del inicio y el final de la estructura que permite dicho anidamiento.
Se debe mantener el concepto que una estructura de decisión debe tener una sola entrada y una sola salida tanto para la estructura que anida como para la estructura anidada.
En el diagrama anterior se puede observar una estructura anidada del lado verdadero de la condición de la primera decisión.
Seudo lenguaje de la estructura de decisión anidada.
Si (Condición 1) entonces
Si (Condición 2) entonces
Ejecuta bloque de instrucciones tarea 1
Si_no
Ejecuta bloque de instrucciones tarea 2
Fin_si
Si_no
Ejecuta blo que de instrucciones tarea 3
Fin si.
En el anterior Seudo lenguaje se puede observar que el anidamiento es total o sea que el inicio de la condición y el final están totalmente encajados dentro del lado verdadero de la primera estructura.