Instrucción de selección - switch
Con el if hemos visto que este tipo de sentencias no son solo condicionales sino también de selección . El if-else es un método de selección bidireccional, si una condición no se cumple, ejecuta la otra u otras según el nivel de anidamiento.
Ahora introducimos un método más complejo que es creado por la instrucción de selección “switch”, este tipo de instrucción permitirá, una vez que ocurra un evento, poder seleccionar su instrucción relativa para ejecutar. Podemos considerar el switch como una declaración if con muchos ifs dentro solo con un estilo de representación más mínimo.
switch en C
La instrucción switch tiene la siguiente sintaxis:
switch (variable) {
case <constante1>: <sentencia1>
case <constante2>: <sentencia2>
case <constante_x>: <instrucción_x>
default: <instrucción_predeterminada>
}
Entonces cuando hay un cambio en una variable podemos canalizar un evento asociado a este cambio en uno de los cases que puede manejar el cambio. Si el cambio no está bloqueado en ninguno de los cases, ejecutará la declaración predeterminada.
#include <stdio.h>
int principal () {
int variable;
printf ("ingrese 1 para imprimir <¡Hola mundo!> \ n");
printf ("ingrese 2 para imprimir <¡Mi nombre es Mario!> \ n");
printf("insertar 3 imprimir en pantalla la suma de dos enteros ingresados por teclado\n");
printf (">>"); // no importa esta línea, simplemente embellece el código
scanf ("%d", &variable);
switch (variable) {
case 1: // si el número elegido es 1 hacer este case
printf("Hola Mundo\n");
break;
case 2:
printf("Mi nombre es Mario\n");
break;
case 3: {
int a;
int b;
printf ("ingrese el valor de a: \n");
scanf ("%d", &a);
printf ("ingrese el valor de b: \n");
scanf ("%d", &b);
b = b + a;
printf ("la suma es igual a:%d\n", b);
break;
}
default:
printf ("ingresó una opción no válida \ n");
break;
}
}
Dado que el código se está empezando a complicar. Tomemos un momento para hacer una pausa y analizar los puntos más destacados.
• switch (variable) El switch es como un controlador, realiza un seguimiento de todos los cambios de una variable. Apenas llega la ejecución de nuestro código a la línea switch ve el valor de la variable entre paréntesis y se lo guarda para poder analizarlo en el código
• case change_variable: Después de la palabra clave case , se debe insertar el valor de la variable para la que se desea desencadenar una acción. dos puntos : indica el comienzo del código a ejecutar.
Si el código que desea insertar se compone de varias líneas, debe insertar las llaves después de los dos puntos. Dentro de los paréntesis se puede comportar como si estuviera trabajando dentro de un main.
• break Esta palabra clave es muy importante e indica el final de su case . Debe insertarse en la última línea del código de un case y cada case debe tener su propio break. Si intenta deshacer una ruptura, encontrará que su programa nunca saldrá del bloque.
• default: cualquier valor de variable no capturado por el case se anulará en el case default.
El uso del switch
Uno de los usos clásicos del switch está relacionado con la creación de menús. Cada programa siempre realiza las mismas acciones: retirar o añadir dinero de una cuenta, sumar o restar... Cada programa tiene su propio conjunto de acciones que el usuario repetirá varias veces al día. Para acceder a estas acciones es importante tener un método de acceso rápido, el switch es la instrucción ideal para tal menester.
Ejemplo: Un programa que automatiza la suma, multiplicación y división entre dos números.
#include <stdio.h>
int principal () {
char select;
float x;
float y;
printf ("<<< Calculadora >>> \ n");
printf("insertar numero:");
scanf ("%f", &x);
printf("ingrese el segundo numero:");
scanf ("%f", &y);
printf("\n");
printf (">> Menú multipunto \n");
printf ("a - Suma dos números \n");
printf ("b - Multiplica dos números \n");
printf ("c - Divide dos números \n");
printf ("insertar opción: \n");
scanf ("%c", &select);
printf("\n");
swich (select) {
float resultado;
case 'a':
printf ("suma los dos números \n");
resultado = x + y;
printf ("resultado: %f\n", resultado);
break;
case 'b':
printf ("Multiplico los dos números \n");
resultado = x * y;
printf ("resultado:%f\n", resultado);
break;
case 'c':
printf ("divide los dos números \n");
resultado = x / y;
printf ("resultado:%f\n", resultado);
break;
default:
printf ("ingresó una opción no válida \n");
break;
}
}
No hay comentarios:
Publicar un comentario