Bitácora del desarrollo de mi clase de C++, en el que publicaré el material de la clase y recibiré comentarios y sugerencias de mis alumnos.

miércoles, 7 de febrero de 2007

6.2. Estructuras condiconales anidadas (if anidadados)


Estructura de selección if/Else
La estructura de selección if/else permite al programador ejecutar acciones diferentes cuando la condición es verdadera que cuando es verdadera. La sintaxis es:

if ( )
    enunciado1;
else
   enunciado2;

Significa “si condicion es verdadera ejecuta el enunciado1, si no ejecuta el enunciado2”.

Ejemplo en pseudocódigo:
si la calificación es mayor o igual a 7
      imprime “Aprobado”
si no
     imprime “Reprobado”

Ejemplo en lenguaje C:

if (calificacion >= 7)
       printf(“Aprobado\n”)
else
       printf(“Reprobado\n”)

Durante la ejecución del programa sucederá que si la variable llamada calificacion contiene un valor mayor o igual a 7, el programa mostrará “Aprobado”, si no (si calificacion tiene un valor menor a 7) se mostrará “Reprobado”.

C tiene el operador ?: que está estrechamente relacionado con la estructura if/else. Este operador es el único operador que utiliza tres operandos (operador ternario). Su sintaxis es la siguiente:

? =7 ? “Aprobado” : “Reprobado”);

El enunciado printf imprime una cadena literal que es “Aprobado” si calificacion es mayor o igual que 7, si no es “Reprobado”.

Ya que los valores de una expresión condicional también pueden ser acciones a ejecutar, podíamos haber escrito:

calificacion >= 7 ? printf(“Aprobado\n”) : printf(“Reprobado\n”) ;

Es decir, si calificacion es mayor o igual a 7 imprime “Aprobado”, si no imprime “Reprobado”.

En ocasiones requeriremos utilizar estructuras if/else anidadas.

Ejemplo en pseudocódigo:
si x > y
      imprimir “x es mayor que y”
si no
     si x = y
         imprimir “x es igual a y”
     si no
         imprimir “x es menor que y”

Ejemplo en lenguaje C

if (x > y)
     printf (“%d es mayor que %d”,x,y);
else
     if (x == y)
           printf (“%d es igual a %d”,x,y);
     else
           printf (“%d es menor que %d”,x,y);

Nótese que para el segmento else de la segunda estructura ya no se evalua si x es menor que y, puesto que como no es ni mayor ni igual, entonces sólo queda que x sea menor que y.

En todas las estructuras de control podemos tener enunciados compuestos, es decir, un conjunto de más de un enunciado dentro de una estructura de control. Los enunciados compuestos se deben encerrar entre llaves “{}” (recordemos el concepto de bloque visto con anterioridad).

Ejemplo:

if (calificacion >= 7)
      printf(“Aprobado\n”);
else
{
printf(“Reprobado\n”);
printf(“El alumno debe recursar la materia\n”;
}

Esto indica que si calificacion no es mayor o igual a 7 se imprimirán ambas cosas: “Reprobado” y “El alumno debe recursar la materia”. Si esto mismo se hubiera escrito sin utilizar llaves, la expresión “El alumno debe recursar materia” se hubiera impreso independientemente del valor de calificacion, debido a que tanto la parte de if como la parte de else de la estructura están esperando un solo enunciado.


0 comentarios:

Publicar un comentario

Suscribirse a Enviar comentarios [Atom]

<< Inicio