Ejemplo de lenguaje C - Día de la semana
Si en lenguaje C se quiere escribir un programa que:
1º) Pida por teclado el número (dato entero) de un día de la semana.
2º) Muestre por pantalla el nombre (dato cadena) correspondiente a dicho día.
Nota: Si el número de día introducido es menor que 1 ó mayor que 7, se mostrará el mensaje: "ERROR: Día incorrecto.".
Por pantalla se verá, por ejemplo:
Si el día es incorrecto, en pantalla se podrá ver:
Solución 1: utilizando la instrucción switch
Para resolver este problema, en lenguaje C se puede escribir:
/* Programa: Día de la semana (Solución 1) */
#include <conio.h>
#include <stdio.h>
int main()
{
int dia;
printf( "\n Introduzca d%ca de la semana: ", 161 );
scanf( "%d", &dia );
switch ( dia )
{
case 1 : printf( "\n Lunes" );
break;
case 2 : printf( "\n Martes" );
break;
case 3 : printf( "\n Mi%crcoles", 130 );
break;
case 4 : printf( "\n Jueves" );
break;
case 5 : printf( "\n Viernes" );
break;
case 6 : printf( "\n S%cbado", 160 );
break;
case 7 : printf( "\n Domingo" );
break;
default : printf( "\n ERROR: D%ca incorrecto.", 161 );
}
getch(); /* Pausa */
return 0;
}
- En el código fuente, se ha utilizado una instrucción alternativa múltiple (switch) que permite seleccionar, por medio de una expresión (dia, en este caso), el siguiente bloque de instrucciones a ejecutar, de entre varios posibles.
- Obsérvese que, en función del valor de la variable dia, se ejecutará un bloque de instrucciones u otro.
- Fíjese también que, la instrucción break se ha escrito al final de cada bloque de instrucciones. Pero, ¿qué ocurriría si esto no fuese así? Se invita al lector a comprobarlo.
Solución 2: anidando switch en if
Por otra parte, el problema también se puede resolver anidando la instrucción switch dentro de un if:
/* Programa: Día de la semana (Solución 2) */
#include <conio.h>
#include <stdio.h>
int main()
{
int dia;
printf( "\n Introduzca d%ca de la semana: ", 161 );
scanf( "%d", &dia );
if ( dia >= 1 && dia <= 7 )
/* Sólo si el día es válido,
se ejecuta la instrucción switch */
/* Inicio del anidamiento */
switch ( dia )
{
case 1 : printf( "\n Lunes" );
break;
case 2 : printf( "\n Martes" );
break;
case 3 : printf( "\n Mi%crcoles", 130 );
break;
case 4 : printf( "\n Jueves" );
break;
case 5 : printf( "\n Viernes" );
break;
case 6 : printf( "\n S%cbado", 160 );
break;
case 7 : printf( "\n Domingo" );
}
/* Fin del anidamiento */
else
printf( "\n ERROR: D%ca incorrecto.", 161 );
getch(); /* Pausa */
return 0;
}