Citation preview

UNIVERSIDAD NACIONAL DE SAN AGUSTÍN  

ESCUELA DE INGENIERÍA INDUSTRIAL

REALIZADO POR CUI

PROFESOR GRUPO DE TEORIA

:

vivancos checya jose alonzo :

20150625

: Ing° Edwin Estremadoyro Escobar :“2c”

AREQUIPA -PERU

SENTENCIA SWITCH

1.

Definición

Esta sentencia es una generalización de las sentencias if...else. En el caso de las sentencias if, la expresión que se evalúa como condición es booleana, lo que quiere decir que sólo hay dos valores posibles, y por lo tanto, sólo se puede elegir entre dos sentencias a ejecutar. Es una sentencia que facilita la posibilidad de elección múltiple, basándose en una expresión constante. En el caso de la sentencia switch, la expresión a evaluar será entera, por lo tanto, el número de opciones es mucho mayor, y en consecuencia, también es mayor el número de diferentes sentencias que se pueden ejecutar. Cuando se usa la sentencia switch el control se transfiere al punto etiquetado con el case cuya expresión constante coincida con el valor de la expresión entera evaluada dentro del switch. A partir de ese punto todas las sentencias serán ejecutadas hasta el final del switch, es decir hasta llegar al "}". Esto es así porque las etiquetas sólo marcan los puntos de entrada después de una ruptura de la secuencia de ejecución, pero no marcan los puntos de salida. Esta estructura está diseñada para ejecutar cierta secuencia de instrucciones, empezando a partir de un punto diferente, en función de un valor entero y dejando sin ejecutar las anteriores a ese punto. El switch evalúa cada caso, cuando coincide uno de ellos con el contenido de la variable, ejecuta las sentencias del caso y termina el switch. En caso de no encontrar ningún case que corresponda, en igualdad, con el contenido de la variable, ejecuta las sentencias de la cláusula default, si esta ha sido especificada, sino termina el switch.

2.

Sintaxis

Su sintaxis es: switch (expresión) { case expres_const_1: sentencias_1; break; case expres_const_2: sentencias_2; break; /* ... */ default: sentencias_n; } Cada caso (case) es etiquetado con un número entero o por una expresión constante. Cuando la etiqueta corresponda con el valor de la expresión evaluada, la ejecución comenzará en ese punto. Al contrario de lo que ocurre en las sentencias if, la ejecución de cada case no es excluyente, sino que, una vez comenzada, ésta continúa en los case que siguen, salvo que cada bloque termine con la instrucción break; que sale del bucle switch. Debemos reseñar que break se puede ejecutar también dentro de otras sentencias de control de flujo, como los bucles while, for o do, para salir de ellos.

3.

Ejemplos

3.1Crear un programa que lea una opción por pantalla de 4 opciones ofrecidas, y le informe al usuario de cuál ha elegido. #include #include using namespace std; int main () { int option; printf ("Introduce tu opcion :\n" "1. Opcion nº1\n" "2. Opcion nº2\n" "3. Opcion nº3\n" "4. Opcion nº4\n"); cin>>option; switch ( option ) { case 1: printf ("Elegiste la opcion nº1\n"); break; case 2: printf ("Elegiste la opcion nº2\n"); break; case 3: printf ("Elegiste la opcion nº3\n"); break; case 4: printf ("Elegiste la opcion nº4\n"); break; default: printf ("Error en la lectura de la opcion\n"); } system("pause"); } 3.2 Crear un programa que pida un número del 1 al 7 y diga el día de la semana correspondiente #include #include int main(void) { int i; printf("Introduzca número del 1 al 7:"); scanf("%d",&i); switch(i){ case 1: printf ("Lunes\n"); break; case 2:

printf ("Martes\n"); break; case 3: printf ("Miércoles\n"); break; case 4: printf ("Jueves\n"); break; case 5: printf ("Viernes\n"); break; case 6: printf ("Sábado\n"); break; case 7: printf ("Domingo\n"); break; default: printf ("Opción no válida\n"); break; } system("PAUSE"); return 0; } 3.3 Crear un programa que pida una letra y detecte si es una vocal. #include #include int main(void) { char c; printf("Introduzca un carácter:"); scanf("%c",&c); switch (c) { case 'a': printf ("Es vocal\n"); break; case 'e': printf ("Es vocal\n"); break; case 'i': printf ("Es vocal\n"); break; case 'o': printf ("Es vocal\n"); break; case 'u': printf ("Es vocal\n"); break; default:

printf ("No es vocal\n"); break; } system("PAUSE"); return 0; }

4.

Ejercicio

Desarrollar un Programa que calcule y devuelva lo siguiente: Ingresar Apellidos y nombres del alumno y su curso y Categoría, además de 3 notas, calcular el promedio y mostrar lo siguiente: Si el promedio esta entre 0 y 10, su estado es Desaprobado Si el promedio esta entre 11 y 14, su estado es Regular Si el promedio es mayor a 14 y menor 17, su estado es Bueno. Caso contrario su estado es Excelente Además del mensaje: Apto, si su estado es Excelente y su categoría es A, caso contrario es No Apto #include #include #include using namespace std; int promedio,n1,n2,n3,cat; char nomape[40],cur[20]; int main() { printf("\t\tingrese nombres y apellidos del alumno\n"); gets(nomape); printf("\t\tingrese curso \n"); gets(cur); printf("\t\telija una categoria \n"); printf("\t\t1 - A\t\t \n"); printf("\t\t2 - B\t\t \n"); printf("\t\t3 - C\t\t \n"); cin>>cat; printf("\t\tingrese 3 notas \n"); scanf("%i""%i""%i",&n1,&n2,&n3); system("cls"); if (n1>=0&&n2>=0&&n3>=0) promedio=(n1+n2+n3)/3 ; else cout