El documento describe tres estructuras de selección en C: la estructura selectiva simple (if), la estructura selectiva doble (if-else), y la estructura selectiva múltiple (switch). La estructura if ejecuta una acción si una condición es verdadera, if-else ejecuta una de dos acciones dependiendo de si la condición es verdadera o falsa, y switch elige entre múltiples bloques de código dependiendo del valor de una expresión.
2. ESTRUCTURAS SELECTIVAS
En ocasiones un programa debe ser capaz de elegir
uno u otro camino, dependiendo del valor de
alguna condición evaluada.
Para ello C, dispone de tres tipos de 3 tipos de
estructuras selectivas, la cuales son:
Estructura Selectiva Simple
Estructura Selectiva Doble
Estructura Selectiva Múltiple
3. ESTRUCTURA SELECTIVA SIMPLE
Funciona de la siguiente manera: se evalúa una
condición, de ser cierta efectúa una acción, de lo
contrario, continúa con la ejecución normal del
programa.
Su sintaxis es la siguiente:
if(Condición)
Acción;
Condición: Es una expresión lógica que es
evaluada por el compilador
Acción: es la Acción o Acciones que
realizará el programa de resultar cierta la
condición
4. EJEMPLO:
EN UNA TIENDA SE VENDEN ARTÍCULOS DE PRIMERA NECESIDAD, A LOS CUALES SE
LES APLICA UN DESCUENTO DEL 20%, DE LA COMPRA TOTAL, SI ESTA ES IGUAL O
MAYOR A $500. DISEÑE UN PROGRAMA EN C, QUE A PARTIR DEL IMPORTE TOTAL DE
LA COMPRA MUESTRE LO QUE DEBE PAGAR EL CLIENTE.
#include <stdio.h>
#include <conio.h>
main()
{
float compra;
printf("Introduzca el valor de la compra:n");
scanf("%f", &compra);
if(compra>=500)
compra=compra*0.8;
printf("El Importe de la compra es %.2fnn", compra);
getch();
}
5. ESTRUCTURA SELECTIVA DOBLE
Esta estructura, se caracteriza por el hecho que
ofrece dos caminos a seguir, dependiendo si al
evaluar la condición resulta cierta o falsa.
Su sintaxis es la siguiente:
if(Condición)
Acción 1;
else Se debe tener en cuenta que la
Acción 2; condición puede ser compuesta, es decir
haciendo uso de los operadores && y || (
Y lógico y No lógico).
Además que cuando tenemos más de
una sentencia por ejecutar ya sea del
lado del cierto o del falso, estas van
dentro de llaves.
6. EJEMPLO: SE DESEA SABER SI UN NÚMERO ES PAR O IMPAR. DISEÑE
UN PROGRAMA EN EL CUAL EL USUARIO, INGRESE EL NÚMERO Y EL
PROGRAMA MUESTRE CON UN MENSAJE, SI ÉSTE ES PAR O NO.
#include <stdio.h>
#include <conio.h>
main()
{
int num;
printf("Ingrese el n%cmero:n“, 163);
scanf("%d", &num);
if(num%2==0)
printf("ES PARn");
else
printf("ES IMPARn");
getch();
return 0;
}
7. ALTERNATIVA MÚLTIPLE ( LA INSTRUCCIÓN
SWITCH )
Una instrucción alternativa múltiple permite seleccionar, por medio
de una expresión, el siguiente bloque de instrucciones a ejecutar de
entre varios posibles.
En lenguaje C, para escribir una alternativa múltiple se utiliza la
sintaxis:
switch ( <expresión> )
{
case <expresión_1> : [ <bloque_de_instrucciones_1> ]
[ break; ]
case <expresión_2> : [ <bloque_de_instrucciones_2> ]
[ break; ]
...
case <expresión_n> : [ <bloque_de_instrucciones_n> ]
[ break; ]
[ default : <bloque_de_instrucciones_n+1> ]
}
El resultado de evaluar la <expresión> debe ser un valor perteneciente a un tipo de
dato finito y ordenado, es decir, entero, lógico, carácter, enumerado o subrango.
Dependiendo del valor obtenido al evaluar la <expresión>, se ejecutará un bloque de
instrucciones u otro.
8. EJEMPLO 1: SE QUIERE ESCRIBIR UN PROGRAMA QUE:
1º) Pida por teclado el número En pantalla:
(dato entero) de un día de la
semana.
2º) Muestre por pantalla el Introduzca día de la
nombre (dato cadena) semana: 2
correspondiente a dicho
día. Martes
Nota: Si el número de día Introduzca día de la
introducido es menor que 1 semana: 9
ó mayor que 7, se mostrará
el mensaje: "ERROR: Día ERROR: Día incorrecto.
incorrecto.".
9. #include <stdio.h>
#include <stdio.h>
int main()
{
int dia;
printf( "n Introduzca día de la semana: " );
scanf( "%d", &dia );
switch ( dia )
{
case 1 : printf( "n Lunes" );
break;
case 2 : printf( "n Martes" );
break;
case 3 : printf( "n Miercoles" );
break;
case 4 : printf( "n Jueves" );
break;
case 5 : printf( "n Viernes" );
break;
case 6 : printf( "n Sabado" );
break;
case 7 : printf( "n Domingo" );
break;
default : printf( "n ERROR: Dia incorrecto." );
}
system (pause);
return 0;
}
10. Las limitaciones que tiene la sentencia switch ...
case respecto a la estructura if son:
Sólo se tiene posibilidad de revisar una sola variable.
Con switch sólo se puede comprobar por igualdad,
mientras que con if puede ser con cualquier operador
relacional.
No se puede probar más de una constante por case.
11. EJERCICIO #2
Realice un programa que , luego
de leer 10 letras, cuente el
número de vocales y el de
consonantes escritas.
Use While y switch