9 de junio de 2016

La estructura de control if-else

   La estructura de control para la selección if-else tiene la siguiente estructura general:

                    if (expresión) {
                        sentencia(s)1;
                   } else {
                        sentencia(s)2;
                   }

   La estructura de selección if-else procesa o ejecuta el grupo de sentencia(s)1 (sentencia(s)1sentencia(s)2 puede ser cualquier sentencia(s) válida(s) en el lenguaje de programación C, como por ejemplo, otras estructuras de control (de selección y de repetición) incluida ella misma, a lo cual se le denomina: estructuras de control anidadas) delimitadas por su bloque, si al ser evaluada la expresión esta es distinta de cero, es decir: expresión != 0. Pero si al ser evaluada la expresión esta es igual a cero, se procesa o ejecuta el grupo de sentencia(s)2 delimitadas por su respectivo bloque. Las llaves izquierdas “{” delimitan el inicio del bloque, mientras que las llaves derechas “}” delimitan  su fin.

   Antes de continuar, compare los Ejemplos 3.2 y 3.3 y compruebe que son esencialmente iguales. Note que la diferencia se presenta en la línea 18, ya que el Ejemplo 3.3 muestra el uso de la estructura de selección if-else.

   La estructura de selección if-else para este ejemplo, podría interpretarse en nuestro lenguaje de la siguiente forma: “Si den es distinto de cero, procesa la división (línea 16) y presenta su resultado (línea 17); en caso contrario, escribe un mensaje que notifique el intento de división por cero”.

   La figura siguiente muestra una posible entrada de datos para generar la salida de indeterminación. Al igual que antes, pruebe con otros datos, y asegúrese de entender el funcionamiento de la estructura de selección if-else antes de continuar.

Posible salida para el Ejemplo 3.3.

   El Ejemplo 3.3 pudo haber sido escrito al menos de otra forma. Considere el Ejemplo 3.4 y compárese con el 3.3.

   Probablemente se esté preguntando ¿cuál de estas dos formas es mejor? La respuesta es: ambas, ya que las dos son lógicamente equivalentes, eficientes y previenen la indeterminación. Tome en consideración que ambos ejemplos producirán la misma salida (como la de la Figura anterior), y que los dos son un reflejo de la forma en que los seres humanos analizamos, pensamos y resolvemos las cosas: desde distintas perspectivas.

   Ahora bien, una vez que haya comprendido el funcionamiento de la estructura de selección if-else, responda lo siguiente:
  • ¿Qué sucede si el Ejemplo 3.1 se reescribe utilizando una estructura de selección if-else anidada?
  • En base a lo anterior ¿se generará la misma salida?
  • Si genera la misma salida ¿por qué?, y si no genera la misma salida ¿por qué?

   Lea, comprenda, y analice el Ejemplo 3.5 para determinar sus respuestas y asegúrese de entender lo que sucede. Trate de determinar sus respuestas antes de ejecutar el programa.