switch

Iniciado por C4ss4ndr4__4__4, 5 Mayo 2021, 14:28 PM

0 Miembros y 1 Visitante están viendo este tema.

C4ss4ndr4__4__4

para que sirve switch en c? segun lo que eh visto en google significa un condicional if pero resumido. esto que quiere decir?

pd perdonad el post anterior se me salio de las manos

gracias de antemano por responder

Danielㅤ

Hola, aquí se explica para que sirve y como utilizar la Sentencia Switch:

https://www.aulafacil.com/cursos/programacion/lenguaje-de-programacion-c/sentencia-switch-l16772

En resumen es un tipo de condicional más simplificado que else if.


Saludos
¡Regresando como cual Fenix! ~
Bomber Code © 2021 https://www.bombercode.net/foro/

Ayudas - Aportes - Tutoriales - Y mucho mas!!!

K-YreX

La sentencia switch(), como bien dices, es una manera de simplificar un tipo concreto de if(). Un switch() sirve para evaluar una expresión de tipo int o char y dependiendo del valor hacer una cosa u otra.
Código utilizando if():

int mes;
printf("Introduce un numero del 1 al 12: ");
scanf("%d", &mes);
if(mes == 1) printf("Enero\n");
else if(mes == 2) printf("Febrero\n");
else if(mes == 3) printf("Marzo\n");
...
else printf("No has introducido un numero entre 1 y 12\n");


Mismo código utilizando switch():

int mes;
printf("Introduce un numero del 1 al 12: ");
scanf("%d", &mes);
switch(mes) { // Segun el valor de <mes>...
  case 1:  // ...si es 1...
    printf("Enero\n"); // ...haces esto...
    break; // ...y sales del switch

  case 2: // ...si es 2...
    printf("Febrero\n"); // ...haces esto...
    break; // ...y sales del switch

  ...

default: // ...si no era ninguno de los anteriores...
    printf("No has introducido un numero entre 1 y 12\n");
    break; // (este break es opcional porque no hay mas casos)
}


El switch permite hacer comparaciones de igualdad teniendo que escribir menos en la condición. El break es necesario para salir del switch y no ejecutar todos. Si no se pusiera el break, el programa entraría en el primer case que cumpla la condición y ejecutaría el código de todos hasta encontrar un break o hasta terminar. Esto también se puede aprovechar para algo como esto:

char letra = ...;
switch(letra) {
  case 'a': case 'e': case 'i': case 'o': case 'u':
    printf("La letra %c es una vocal minuscula\n", letra);
    break;

  case 'A': case 'E': case 'I': case 'O': case 'U':
    printf("La letra %c es una vocal mayuscula\n", letra);
    break;

  default:
    printf("La letra %c es una consonante\n", letra);
}


* La claúsula <default> es opcional y siempre debe ir al final porque sino cualquier case que vaya después que <default> no se va a ejecutar nunca (a no ser que no haya breaks).
Código (cpp) [Seleccionar]

cout << "Todos tenemos un defecto, un error en nuestro código" << endl;