9.20.2012

ESTRUCTURAS DE SELECCION

La Estructura de Selección if

La sentencia if se le conoce como estructura de selección simple y su función es realizar o no una determinada acción o sentencia, basándose en el resultado de la evaluación de una expresión (verdadero o falso), en caso de ser verdadero se ejecuta la sentencia.
conds
Fig. 1
La estructura de selección if (que se muestra en la figura 1) trabaja de la siguiente manera: si la evaluación de la expresión o expresiones es verdadera ( 1 ) entonces se ejecuta la sentencia a la cual se refiere la estructura de control if.
Si fueran varias sentencias a las que se refiere la estructura if (como se muestra en la figura 2) se tiene que encerrar todas las sentencias entre llaves ( { } ) y si la evaluación de la expresión es correcta entonces se ejecuta todas las sentencias contenidas entre las llaves.

conds
Fig. 2

Si la evaluación de la expresión o expresiones resultaría falsa (0), entonces no se ejecuta las sentencias.
Por ejemplo si dada la edad de una persona quiero dar un mensaje de que es o no mayor de edad, suponiendo que una persona mayor de edad tiene por lo menos 21 años, el procedimiento será el siguiente.
#include <stdio.h>
#include<conio.h>
 void main()
{int edad;
printf("¿Qué edad tienes? ");
scanf("%d",&edad);
if ( edad > 20 )
    printf("Eres mayor de edad") ;
getch();
}

Tambien se puede unir condiciones utilizando los operadores logicos and, or y not, por ejemplo si se desea saber si 2 condiciones si han cumplido es necesario tener un formato como:
If ( matematicas >=60 and quimica>=80 )
{
     printf( "pasaste ambas materias, felicidades);
}
Nota: solo si tu calificacion de matematicas es igual o mayor a 60 y la de quimica es igual o mayor a 80 se desplegara el mensaje de "pasaste...."
Los principales simbolos de comparacion son:

< menor a
> mayor a
!= no igual a
== igual a
>= mayor o igual a
<= menor o igual a

Estructura de Selección if / else

La estructura if / else lo que hace es ejecutar una acción si el resultado de la evaluación de la expresión es verdadera y otra acción si el resultado de la evaluación es falsa.

La diferencia con utilizar sólo la estructura if es que si la expresión evaluada es verdadera sólo en ese caso se ejecuta una acción de otro modo se pasa de largo. En cambio en la estructura if / else si la expresión es falsa entonces se ejecuta otra acción.
conds
Fig. 3
En síntesis lo que hace esta estructura es realizar una acción si la expresión es verdadera y otra si es falsa.

       Aquí tenemos un ejemplo para ilustrar la estructura if / else.
#include <stdio.h>
#include <conio.h>
 void main()
{
 if ( edad > 20 )
     printf("Eres mayor de edad") ;
else
    printf("No eres mayor de edad");
}

Estructuras Condicionales Anidadas

Existe el caso de estructuras if, if/else anidadas, que no es más que una estructura if o if/else dentro de otra.

Por ejemplo se desea conocer cuál es el mayor de tres números A, B ,C.

1: #include <stdio.h>
2:             void main()
3: {
4: int A=0, B=0, C=0;
5:     printf("Ingrese 3 números");
6:             scanf("%d,%d,%d",&A,&,&C); //Lectura de valores por teclado
7: if ( A > B )
8: { if (A > C )
9:       printf("A es el número mayor");
10: else
11:    printf("C es el número mayor");
12: }
13: else
14: { if ( B > C )
15:      printf("B es el número mayor");
16: else
17:     printf("C es el número mayor");
18: }
19: }
Para explicar el funcionamiento del problema anterior se han enumerado todas las líneas de tal programa.

       Suponiendo que los valores ingresados por teclado fueran: A=2, B=1, C=5. El programa actuaría de la siguiente manera.

       El programa se ejecuta secuencialmente hasta la línea 7 donde encuentra una expresión. Cuando se evalúe la expresión (A > B) línea 7, el resultado es verdadero (2 > 1), por lo tanto el programa ejecuta la línea 8, en dicha línea encuentra otra expresión (A > C) y el resultado de evaluar dicha expresión es falso (2 > 5) por lo que el programa salta hasta la línea 11 y muestra "C es el número mayor". Luego va a la línea 12 y verifica el cierre de llaves y finalmente salta hasta la línea 19 siendo la última línea de ejecución.