Switch es una estructura de control para agilizar el flujo del programa en opciones múltiples.
Se tiene una condición que se puede cumplir dependiendo de diferentes casos, cada caso nos lleva a un bloque de cumplimiento de la condición y ese bloque nos lleva a continuar el programa.
Hola practique SWITCH desarrollando un menu con opciones de operaciones matematicas. : )
Genial. estuvo muy bien.
Muy buena no se me había ocurrido
Mi acertijo:
1 #include <stdio.h>23 int main(){4printf("Te encuentras en un cuarto oscuro donde no puedes regresar\n");5printf("Pero hay tres puertas por donde vayas a salir, tienes tres opciones:\n");6printf("(Recuerda que tu familia esta del otro lado y van a morir)\n");7 int opcion;8printf("PUERTA 1: 100 ninjas mortiferos asesinos\n");9printf("PUERTA 2: Un leon que no ha comido en 4 meses\n");10printf("PUERTA 3: Un estanque con peces asesinos\n");11printf("Cual puerta elijes?\n");12scanf("%i",&opcion);1314switch(opcion){15case1:16printf("Moriste, los ninjas te asesinaron\n");17break;1819case2:20printf("Lograste salir, el leon no ha comido en tanto tiempo que ");21printf("seguramente ya murio, ya puedes ver a tu familia\n");22break;2324case3:25printf("MORISTE, Los peces te comieron\n");26break;2728default:29printf("Claro, siempre te puedes quedar\n");30break;31}32}
Cool! 😄
JJAJAJAJAA, ta bueno!!!
Hay dos puertas en mi juego que no son tan emocionantes, pero aquí las dejo
#include <stdio.h>#include <stdlib.h>int main(){printf("!B I E N V E N I D O!!\nDebes elegir una puerta. En una de ellas hay $1.000.000 USD.\n"); int door;printf("1. Puerta verde.\n");printf("2. Puerta negra.\n");printf("3. Puerta azul.\n");scanf(" %i",&door);switch(door){case1:printf("!FELICIDADES! Eres millonario.\n");break;case2:printf("!LO SIENTO! Aqui esta tu suegra y tu ex.\n");break;case3:printf("!LO SIENTO! Aqui estan tus facturas pendientes.\n");break;default:printf("Recuerda que es un numero del 1 al 3.\n");break;}return0;}
Brual xD, buena esa
Jajajaja muy bueno!
🎮 Determina que lenguaje de programación debes aprender para realizar aplicaciones.
import'dart:io';voidmain(List<String> arguments){ int option;print('''
Elige una opción para determinar que lenguaje de programación
aprender para el desarrollo:
1. Web
2. Movil
3. Escritorio
4. Multiplataforma
'''); option = int.parse(stdin.readLineSync());switch(option){case1:print('JavaScript');break;case2:print('Swift y Kotlin');break;case3:print('Swift, C#, C y C++');break;case4:print('Dart');break;}}
++Apuntes de clase++:
Switch es una estructura de control para agilizar el flujo del programa en opciones múltiples.
Se obtiene una condición que se puede cumplir dependiendo de diferentes casos, cada caso nos lleva a un bloque de cumplimiento de la condición y ese bloque nos lleva a continuar el programa.
Reto
Buena aplicación con los tacos!!
Los tacos son deliciosos!
#include <stdio.h>#include <stdlib.h>int main(){ int userNum;printf("Has despertado en un cuarto completamente blanco, a tu lado hay un cadaver cubierto de sangre que parece no tener mucho tiempo. \n");printf("Frente a ti puedes ver una puerta entreabierta pero no logras distinguir a donde lleva, y en el cuarto contiguo puedes escuchar los gritos desgarradores de un chico \n");printf("Escribe 1 si quieres asomarte a la puerta para intentar descubrir en qué lugar te encuentras \n");printf("Escribe 2 si no hay tiempo que perder y prefieres precipitarte a correr hacia afuera sin más, ya en el camino irás viendo donde te encuentras\n");printf("Escribe 3 si deseas inspeccionar el cadaver, podría tener algo que te sea útil\n");printf("Escribe 4 si deseas abortar la misión\n");scanf("%i",&userNum);switch(userNum){case1:printf("Fuera de la puerta solo se vislumbra un pasillo largo, no ves a nadie en el pero tampoco ves algo que se parezca a una salida");break;case2:printf("Al salir corriendo te topas de frente con una pared, hacia los lados se expande un pasillo, pero no sabes que direccion tomar");break;case3:printf("No hay nada en los bolsillos del cadaver, parece ser que fue saquedo antes de que lo abandonaran. Sin embargo tiene en el cuello una vieja cadena que, podria llegar a servir de algo");break;case4:printf("Fin del juego");break;default:printf("Ingresa un numero valido");break;}return0;}
RETO
#include <iostream>using namespace std;int main(){ string name; char decision; cout <<"Hola, para iniciar, ingresa tu nombre: "<< endl; cin >> name; cout <<"Bien, "<< name <<" haremos un juego, tienes tres opciones"<< endl; cout <<"Escribe \"a\" para elegir ser un gatito"<< endl; cout <<"Escribe \"b\" para elegir ser un pandita"<< endl; cout <<"Escribe \"c\" para elegir ser un perrito"<< endl; cin >> decision;switch(decision){case'a': cout <<"Eres un gatito muy tierno, actor de las mejores películas de gatitos"<< endl;break;case'b': cout <<"Eres un pandita al que le encantan comer dulces de bambú, tu sueño es tener una isla llena de bambú"<< endl;break;case'c': cout <<"Eres un perrito con super poderes, defiendes a todos los animalitos de abusos, tu identidad es secreta."<< endl;break;default: cout <<"Está opción es invalida"<< endl;break;}return0;}
RETO
#include <stdio.h>#include <stdlib.h>int main(){ int way;printf("Te encuentras en un sueno y tienes tres caminos. \n");printf("Escribe 1 si quieres ir por el camino de dulces \n");printf("Escribe 2 si quieres ir por el camino de madera \n");printf("Escribe 3 si quieres ir por el camino de gatitos \n");scanf("%i",&way);switch(way){case1:printf("Los dulces asesinos hicieron que no puedas despertar nunca \n");break;case2:printf("Unos arboles interrupieron tu camino, escoge otro camino");break;case3:printf("Los gatitos lindos te llevan a una puerta y al cruzarla te despiertas! \nfelicidades! \n ");break;default:printf("Solo puedes escoger uno de los tres caminos!! \n");}return0;}
¿En cuáles casos es mejor usar Switch en vez de un IF?
Hola Sebastian,
Partamos del siguiente escenario, Diana comprará un vestido y un presupuesto de $150USD, tiene las opciones siguientes:
Definir si le alcanza su presupuesto o no para los distintos colores disponibles.
Entonces, supongamos que elige el Rojo...
Usando if, tendríamos que hacer algo así:
let vestidoColor = prompt("Elije color de vestido");
if(vestidoColor === "rojo" ){ print("Le Alcanza"} else if(vestidoColor ==="Azul" ){print("Le Alcanza");} else if(vestidoColor)==="Negro"){...} else if(vestidoColor)==="Amarillo"){...} else if(vestidoColor)==="Rosa"){...} else{"Ningún color le gustó... "}
En cambio, usando un switch...
switch(vestido.color){ case "rojo": print("Le Alcanza"); break; case: "amarillo": print("No le Alcanza"); break; case: "negro": ... default: ... }
¿Notas cuán mayormente es legible y entendible un switch en lugar de if's anidados? Entonces. cuando tienes un escenario en el que hay múltiples opciones utilizas un switch.
Se que no es el mejor ejemplo, hay muchos mejores pero espero se logre comprender la idea.
Saludos
#include <stdio.h>#include <stdlib.h>int main(){printf("Esta en la torre del dragon para rescatar a la princesa, para poder rescatarla y salir ileso, ¿cual de las siguientes tres opciones escogerias?\n");printf("opcion 1:Escalarias la torre para entrar por la ventana \n");printf("opcion 2:Ingresarias sigilosamente por la puerta e irias por la princesa \n");printf("opcion 3:Intentarias cazar al dragon y rescatar a la princesa \n"); int option;printf("ingresa la opcion que escogiste:");scanf("%i",&option);switch(option){case1:printf("Al intentar escalar la torre cuando cuando estas en la mitad del camino el material con el que esta se construyo esta desgastado, por lo cual se comienza a desprender, provocando de que te caigas y mueras en el momento.Q.E.P.D.:( \n");printf("colorin colorado esta historia ha terminado");break;case2:printf("al ingresar sigilosamente llegas hasta el cuarto de la princesa, pero al llegar ahi te encuentras con la sorpresa de que el dragon es el que se encuentra en ese cuarto y te conviertes en comida para dragon.Q.E.P.D.:( \n");printf("colorin colorado esta historia ha terminado");break;case3:printf("Al intentar cazar el dragon coges una red y le colocas una trampa al dragon, en la cual este es atrapado y procedes a asaesinarlo, ya teniendo el camino libre subes al cuarto de la princesa y esta no se encuentra en el , asi que procedes a buscarla y la princesa no parece por ningun lado provocandote una gran desilucion......:( \n");printf("colorin colorado esta historia ha terminado");break;default:printf("elegiste otra opcion porque te diste cuenta de que en las anteriores nunca lograste rescatar a la princesa, pero la realidad de la historia es que la princesa se transforma en el dragon por una maldicion que tenia... ¡h! \n");printf("colorin colorado esta historia ha terminado");break;}return0;}```
Me lo van a agraceder en el futuro cuando les pase:
Error:Jump to case label inswitch statement
esto sucede por NO USAR llaves " { } " en el Switch, la forma "correcta" es:
Esto les va a pasar entre otros escenarios cuando declaren una variable dentro de un case traten de acostumbrarse tener contenido el codigo siempre que se pueda es una buena práctica,
a modo de experimento les dejo ejemplo de un error para que lo emulen
switch(option){case1:// ....... int i =7;break;case2:// ....... float =7.7;break;}
Saludos.
Yo hice un minijuego llamado: ** El Gran Viaje** espero que alguien pueda probarlo, esta muy entretenido :D
#include <stdio.h>#include <stdlib.h>int main(){ int player, health, damage, healthEnemy, damageEnemy, option, res, res2; float porcentAtack, porcentAtackEnemy;printf("\n");printf("________________________________________ EL GRAN VIAJE ________________________________________\n");printf("\n");printf("\tBienvenido viajero a esta gran aventura, el gran viaje te esta esperando...\n");printf("\n");printf("----- Antes de comenzar debes de saber que cada decision determinara tu progreso en el juego\n");printf("----- Una mala decision te costara la vida, ten cuidado y escoje con mucho cuidado\n");printf("\n");printf("\t\t\t| Escoge con sabiduria tu personaje |\n");printf("\n");printf("\t\tPersonaje Estadisticas Numero\n");printf("\t\t Royer Salud:170 Ataque:100 1\n");printf("\t\t Dani Salud:500 Ataque:50 2\n");printf("\t\t Freddy Salud:250 Ataque:90 3\n");printf("\n");printf("_______________________________________________________________________________________________\n");printf("\nIngresa el numero de tu personaje: ");scanf("%i",&player);switch(player){case1: health =170; damage =100; healthEnemy =90; damageEnemy =150;printf("\n\n\n\n\n\n\n\n\n");printf("\t| Muy bien! has escogido al legendario asesino Royer |\n\n");printf("Puntos de vida: %i Puntos de ataque: %i \n", health, damage);printf("\n\n");printf("\tOh no! que es eso?!\n");printf("\tGodzilla se aproxima! \n");printf("\n");printf("Puntos de vida: %i Puntos de ataque: ??? \n", healthEnemy);printf("\n");printf("\t1 - HUIR\n\t2 - ENFRENTARLO\n");printf("\n");printf("\nQue decides hacer?: ");scanf("%i",&option);if(option ==2){printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");printf("\tEnhorabuena tu valentia te ha concedido la victoria!\n\n");printf("\t Estadisticas finales de Royer: \n"); res = health - damageEnemy; porcentAtack =(damage *100)/ healthEnemy;printf("Vida inicial: %i Vida Restante: %i Puntos de ataque: %i Porcentaje de efectividad de ataque al enemigo: %.2f \n", health, res, damage, porcentAtack);printf("\n");printf("\t Estadisticas finales de Godzilla: \n"); res2 = healthEnemy - damage;if(res2<0) res2=0; porcentAtackEnemy =(damageEnemy *100)/ health;printf("\tVida inicial: %i Vida Restante: %i Puntos de ataque: %i Porcentaje de efectivdad de ataque : %.2f %\n", healthEnemy, res2, damageEnemy, porcentAtackEnemy);printf("\n\n\t YOU WIN! ;) ");printf("\n\n\n\n\n\n");}else{printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");printf("\t Has escogido mal\n");printf("Un asesino nunca huye de los enemigos y menos de Godzilla\n\n\tx_x GAME OVER x_x ");printf("\n\n\n\n\n\n\n\n\n");}break;case2: health =500; damage =50; healthEnemy =80; damageEnemy =550;printf("\n\n\n\n\n\n\n\n\n");printf("| Excelente! escogiste a la gran curandera Dani |");printf("Puntos de vida: %i Puntos de ataque: %i \n", health, damage);printf("\n\n");printf("\tOh no! que es eso?!\n");printf("\n King Kong enfurecido se aproxima! \n");printf("\n");printf("Puntos de vida: %i Puntos de ataque: ??? \n", healthEnemy);printf("\n");printf("\t1 - HUIR\n\t2 - ENFRENTARLO\n");printf("\n");printf("\nQue decides hacer?: ");scanf("%i",&option);if(option ==1){printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");printf("\tEnhorabuena tu sabiduria te ha concedido la victoria!\n\n");printf("\t Estadisticas finales de Dani: \n"); res =100;printf("Vida inicial: %i Vida Restante: %i Puntos de ataque: %i \n", health, res, damage);printf("\t Estadisticas finales de king Kong: \n"); res2 =100;printf("Vida inicial: %i Vida Restante: %i Puntos de ataque: %i \n", healthEnemy, res2, damageEnemy);printf("\n");printf("\n\n\n\n\n\n\n\n\n");}else{printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");printf("\t Has escogido mal\n");printf("Una curandera sin ayuda, no puede derrotar a King Kong \n\n\tx_x GAME OVER x_x ");printf("\n\n\n\n\n\n\n\n\n");}break;case3: health =250; damage =90; healthEnemy =100; damageEnemy =300;printf("\n\n\n\n\n\n\n\n\n");printf("| Nada mal! escogiste al poderoso mago Freddy |");printf("Puntos de vida: %i Puntos de ataque: %i \n", health, damage);printf("\n\n");printf("\tOh no! que es eso?!\n");printf("\n Un ogro oscuro se aproxima! \n");printf("\n");printf("Puntos de vida: %i Puntos de ataque: ??? \n", healthEnemy);printf("\n");printf("\t1 - HUIR\n\t2 - ENFRENTARLO\n");printf("\n");printf("\nQue decides hacer?: ");scanf("%i",&option);if(option ==1){printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");printf("\tEnhorabuena tu sabiduria te ha concedido la victoria!\n\n");printf("\t Estadisticas finales de Freddy: \n"); res =100;printf("Vida inicial: %i Vida Restante: %i Puntos de ataque: %i \n", health, res, damage);printf("\t Estadisticas finales del ogro oscuro: \n"); res2 =100;printf("Vida inicial: %i Vida Restante: %i Puntos de ataque: %i \n", healthEnemy, res2, damageEnemy);printf("\n");printf("\n\n\n\n\n\n\n\n\n");}else{printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");printf("\t Has escogido mal\n");printf("Un mago sin ayuda, no puede derrotar al ogro oscuro \n\n\tx_x GAME OVER x_x ");printf("\n\n\n\n\n\n\n\n\n");}break;default:printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");printf("\tHas escogido mal\n");printf("Tu camino termino antes de comenzar\n\n\t x_x GAME OVER x_x ");printf("\n\n\n\n\n\n\n\n\n");break;}return0;}
Muy bueno, te felicito, me lo guardaré también.
Un saludo y gracias.
Reto: Videojuego de opciones
#include <stdio.h>#include <stdlib.h>int main(){ int option;printf("\n---Juego de las puertas---\n");printf("\nTe encuentras en una habitacion con tres puertas, escoge una de ellas...\n");printf("\nPuerta 1: Una puerta de madera con grietas y muchos clavos");printf("\nPuerta 2: Una puerta de metal.");printf("\nPuerta 2: Una puerta de cristal y que al fondo se ve la naturaleza y canes corriendo.");printf("\n\n\tSelecciona tu puerta [1-3]: ");scanf("%i",&option);switch(option){case1:printf("\n\tMoriste entre tanto moho y oxido.");break;case2:printf("\n\tMoriste al pasar los dias, no habia nada que comer entre tanta chatarra.");break;case3:printf("\n\tTuviste muchas frutas para comer y fuiste feliz entre tanto perritos, ahora eres el Alfa de la manada.");break;default:printf("\nPuerta invalida, la habitacion se lleno de agua y moriste ahogado.");break;}return0;}
printf("***********Menu************ \n");printf("1.SUMA \n");printf("2.RESTA \n");printf("3.MULTIPLICACION \n");printf("4.DIVISION \n");scanf("%i",&option);switch(option){case1:printf("Ingresa el primer valor");scanf("%i",&x);printf("Ingresa el segundo valor");scanf("%i",&y); int suma; suma = x + y ;printf("El resultado de la suma es :%i", suma);break;case2:printf("Ingresa el primer valor");scanf("%i",&x);printf("Ingresa el segundo valor");scanf("%i",&y); int resta; resta = x - y ;printf("El resultado de la resta es :%i", resta);break;case3:printf("Ingresa el primer valor");scanf("%i",&x);printf("Ingresa el segundo valor");scanf("%i",&y); int multi; multi = x * y ;printf("El resultado de la multiplicacion es :%i", multi);break;case4:printf("Ingresa el primer valor");scanf("%i",&x);printf("Ingresa el segundo valor");scanf("%i",&y); int division; division = x / y ;printf("El resultado de la division es :%i", division);break;default:printf("Opcion invalida");break;}
Que bien
Muy bien compañera.
SABIAS QUE:
Si eliminas el > break> es posible ejecutar el mismo bloque de instrucciones en diferentes casos Ejemplo:
Cree un sistema de acertijos con diferentes dificultades
#include <stdio.h>#include <stdlib.h>int main(void){ int option;printf("¿Te atreves a resolver uno de mis acertijos? \n \n");printf("Si deseas continuar presiona 1, abandonar presiona 2 \n");scanf("%i",&option);if(option ==1){ int acertijo;printf("Perfecto... escoge uno de los tres Acertijos: \n");printf("Acertijo facil: 1 \n");printf("Acertijo medio: 2 \n");printf("Acertijo dificil: 3 \n");printf("Ingresar al acertijo: ");scanf("%i",&acertijo);if(acertijo ==1){ int piscina;printf("\n Bienvenido al acertijo facil : \n");printf("\n Tienes que sumergirte en una de estas 4 piscinas. Cual es la segura: \n \n");printf("Piscina con serpientes venenosas: 1 \n");printf("Piscina con anguilas electricas: 2 \n");printf("Piscina con acido: 3 \n");printf("Piscina infectada con cancer: 4 \n");scanf("%i",&piscina);switch(piscina){case1:printf("Las serpientes te inyectan su veneno y mures \n");break;case2:printf("Las angulias te electrocutan hasta morir \n");break;case3:printf("El acido te mata lenta mente \n");break;case4:printf("Felicidades!!! El cancer no es contagioso por lo que sobrevives \n");break;default:printf("Error");break;}}elseif(acertijo ==2){ int primero;printf("\n Bienvenido al acertijo medio : \n");printf("Una viuda perdio su cartera, su zapato y a su perro \n \n");printf("Que perdio primero?: \n");printf("Su perro: 1 \n");printf("Su cartera: 2 \n");printf("Su zapato: 3 \n");scanf("%i",&primero);switch(primero){case1:printf("Te equivocas");break;case2:printf("No fue eso");break;case3:printf("No es la respuesta");break;default:printf("Exacto perdio su esposo");break;}}elseif(acertijo ==3){ int soy;printf("\n Bienvenido al acertijo dificil : \n");printf("Si la hija de maria es la madre de mi hija que soy yo de maria: \n \n");printf("Abuela: 1 \n");printf("Madre: 2 \n");printf("Hija: 3 \n");printf("Nieta: 4 \n");printf("Soy maria: 4 \n");scanf("%i",&soy);switch(soy){case1:printf("No es la respuesta");break;case2:printf("Tampoco es la respuesta");break;case3:printf("Felicidades eres la hija de maria");break;case4:printf("No estas cerca");break;case5:printf("Para nada es la respuesta");break;default:printf("te vas a rendir");break;}}}else{printf("No seas cobarde y escoge un acertijo!");}return0;}
#include <stdio.h>#include <stdlib.h>#include <stdbool.h>int main(){printf("Escribe 1 si quieres ir por el camino de dulces \n");printf("Escribe 2 si quieres ir por el camino de madera \n");printf("Escribe 3 si quieres ir por el camino de gatitos \n"); int option;scanf("%i",&option);switch(option){case1:printf("Los dulces te dan 100 modenas sigue asi!!\n");break;case2:printf("La madera te regala 5 edificios mas\n");break;case3:printf("Los gatitos te hacen pasar al siguiente nivel\n");break;default:printf("Elegiste una opcion invalida\n");break;}printf("INGRESA UN NUMERO PARA FINALIZAR");scanf(" %i",&option);return0;}