Hoy estaremos viendo todo sobre el Condicional Switch en C++. En pocas palabras, son una estructura de control condicional que permite definir múltiples casos que pueden llegar a cumplir una variable cualquiera y qué acción tomar en cualquiera de estas situaciones. Incluso, es posible determinar qué acción llevar a cabo en caso de no cumplir ninguna de las condiciones dadas, por lo que es una alternativa al uso de muchos else if para comparar un valor con varios casos coincidentes. Así que veamos un ejemplo de lo que no quieres hacer.
Para ello he escrito este programa en donde tenemos una variable que la he llamado mes en este caso, que es de tipo entero y por aquí le pido al usuario que ingrese un número que se encuentre en el rango del 1 al 12 para representar el mes. Ahora bien, si vamos un poco más abajo, vamos a ver una típica estructura del condicional. en donde básicamente dependiendo del número que ingrese el usuario por aquí en consola, si el valor que almacena es igual a 1, vamos a estar mostrando un mensaje es enero, si el mes es igual a 2, es febrero, si no, si el mes es 3, 4, 5 y así sucesivamente, como lo estamos viendo por aquí.
Esto es básicamente lo que no quieres hacer porque es ineficiente. Es como se creó el juego Yandere Simulator. que es un juego que se basa en toma de decisiones. Por lo tanto, una solución mejor a esto sería usar el condicional switch.
Así que veamos cómo escribir uno. Para ello voy a borrar todo esto de aquí, y vamos a estar escribiendo switch, seguido de un conjunto de paréntesis y de llaves. Dentro de los paréntesis debemos colocar la variable del valor que queremos examinar.
Por ejemplo, en nuestro caso va a ser mes. Ahora, para escribir un caso, escribimos case y luego el valor. Por ejemplo, si mes es igual a 1, lo que queremos hacer es colocar por aquí un mensaje en consola que diga algo por ejemplo, es enero. Ya que en este caso, efectivamente, si es 1, en nuestro diccionario, el mes 1 es enero. Una cosa importante es que al final de este caso, debemos agregar la palabra break para salir de este switch.
Bien, eso es para el caso 1. Trabajemos en el caso 2. Por lo tanto, si mes es igual a 2, lo que queremos hacer es exactamente lo mismo que hemos hecho por aquí, pero en vez de decir es enero, vamos a mencionar que es febrero. Y ya creo que el resto se auto explica. Así que voy a escribir lo demás y cuando termine volvemos. De acuerdo, ya tenemos nuestro 12 escaso del 1 al 12 como lo están viendo por aquí.
Donde cada caso corresponde a un mes del año. Bien, corramos esto para ver que sucede. Nos pide que ingresemos el mes. Digamos que el mes es 2 para febrero.
Y efectivamente nos dice es febrero. Así que bien, probémoslo una vez más. Ahora ingresemos el número 12. Porque digamos que es diciembre. Y bien, nos estaría entregando es diciembre.
Así que está funcionando correctamente. Entonces, como lo hemos visto, un condicional switch es una alternativa al uso de muchos else if. Y como lo he mencionado antes, esto de aquí es mucho más eficiente y más fácil de leer. Ahora bien, si no encuentra el caso que hemos ingresado por aquí en mes, podemos ejecutar un caso predeterminado.
Para ello nos vamos a ir hasta el último caso por aquí y vamos a colocar default. Y por aquí dentro de esta opción, lo que haremos es agregar un mensaje en donde digamos, por ejemplo, por favor ingrese solo números del 1 al 12. Entonces, una vez que tengamos esto de aquí, no hace falta terminar esta sentencia con un break, ya que estaremos viendo más adelante el porqué de esto. Por lo tanto, vamos a sacar esto de aquí y ahora bien, si volvemos a ejecutar. Y digamos que nos hemos equivocado y escribimos un"-41", por ejemplo. Y si le damos un Enter, ahora nos dice, por favor, ingrese solo números del 1 al 12. Entonces, el caso predeterminado, este de aquí, es como la declaración Else.
Ya que si no hay casos coincidentes con lo que hemos ingresado por aquí en la parte superior, lo que hará es ejecutar lo que está dentro del caso predeterminado. En este caso, lo que queremos hacer es... es imprimir un mensaje.
Pero obviamente por aquí podemos hacer lo que nosotros querramos. Intentemos un ejemplo más, esta vez haremos que un usuario ingrese una letra de calificación y mostraremos un mensaje personalizado dependiendo de la calificación que tenga. Para esto debemos crear una variable de tipo carácter y la llamaremos en este caso calificación.
Luego de esto lo que estaremos haciendo es imprimir un mensaje en consola en donde le vamos a estar pidiendo su calificación por aquí. Y también por supuesto queremos obtener por aquí ese valor que el usuario ha ingresado en consola, y lo estaremos almacenando dentro de esta variable. Entonces ya estaríamos obteniendo la calificación del usuario, y lo que haremos ahora es crear por aquí un condicional switch, en donde según la calificación que hayamos obtenido, lo que queremos hacer es armar distintos casos. Por ejemplo, para el primer caso, si el carácter que el usuario ha ingresado es la letra A, lo que queremos hacer es imprimir un mensaje en consola que diga algo así, por ejemplo, lo hiciste genial. Y así básicamente con los demás.
Así que bien, una vez que hayamos ingresado y colocado cada uno de los casos, vamos a probar esto. Por lo tanto, guardamos cambios y ejecutamos e imaginemos que nos hemos sacado una B. Ingresamos B en consola. le damos un enter y nos dice lo hiciste muy bien, lo hiciste bien, no lo hiciste bien, fallaste.
Ok, y por qué no está sucediendo esto? Si se fijan nosotros por aquí hemos ingresado la letra B y una vez que ingrese al switch como están viendo por aquí, imprime directamente por acá lo hiciste muy bien, lo hiciste bien, no lo hiciste. Y esto por qué sucede?
Porque básicamente con los switch se iría directamente al caso que acabamos de ingresar que es el caso B, y lo que haría es imprimir, lo hiciste muy bien, pero como nosotros no hemos cerrado este caso, se iría al siguiente, al siguiente, y así hasta el último. Por lo tanto, sucede esto, ya que si ejecutamos ahora e ingresamos la letra D, al dar un Enter, como ven, nos dice, no lo hiciste bien, fallaste. Y esto es simplemente porque ha ingresado aquí la D, ha impreso, no lo hiciste bien, Y luego nuevamente como no hemos cerrado el caso, si di al siguiente. Entonces es por eso que debemos colocar aquí la palabra break.
Para que básicamente no suceda esto. Ahora si, si volvemos a guardar cambios y ejecutamos. Al momento de ingresar la A y darle un enter nos dice lo hiciste genial.
Y de este caso ya nos estaría mostrando las demás opciones. Y ya por último lo que podemos hacer es agregar un caso predeterminado. Como por ejemplo.
Vamos por aquí abajo, agregamos default y lo que quiero hacer aquí es agregar un mensaje en consola que diga algo así, por ejemplo, por favor solo ingrese una letra de grado de la A a la F. Bien, probemos esto. Nos pide que ingresemos la calificación, vamos a colocar una B y nos dice lo hiciste muy bien. Ahora, si volvemos a ejecutar esto e ingresamos. una letra que no tenemos registrado ese caso, por ejemplo la T, nos tiraría el mensaje por favor solo ingresa una letra de grado de la A a la F.
Así que bien, estos son los switches en C++. En pocas palabras, es una alternativa al uso de muchos else if, además de ser eficiente y más fácil de leer. Y como siempre, ya por último, tu tarea es crear un switch y publicarlo en la sección de comentarios.
Así que bien. Eso es todo sobre el condicional switch en SEMA+.