Hola y bienvenidos.
Vamos a realizar a continuación el ejercicio del día de la semana, pero utilizando la sentencia Switch.
Están listos?
Vamos.
Bien, así que vamos a realizar este mismo ejercicio.
Pero ahora, en lugar de utilizar la sentencia if else, vamos a utilizar la sentencia switch precisamente
para poder aplicar este concepto y también realizar algunas comparaciones.
1/1 del código es exactamente el mismo.
Según lo que hemos comentado, la sentencia Switch solamente va a aceptar un valor que sea de tipo numérico
para poder empezar a realizar cada una de las comparaciones de cada caso que agreguemos en la sentencia
Switch.
Por lo tanto, este ejercicio de día de la semana es perfecto, ya que el día de la semana que estamos
proporcionando es un valor de tipo numérico, así que le estamos pidiendo al usuario proporciona.
El día de la semana capturamos esta información utilizando la función, escaneé F y hasta aquí tenemos
exactamente el mismo código.
Voy a dejar el código del bloque if else al final para poder realizar algunas comparaciones cuando terminemos
este ejercicio.
Bien, así que ahora vamos a realizar la revisión.
Día de la semana, pero utilizando la estructura switch.
Así que la sintaxis es la siguiente.
Utilizamos la palabra reservada a switch.
Posteriormente, en lugar de agregar una condición, vamos a agregar la variable que contiene el valor
que queremos comparar con cada uno de los casos.
Así que esta va a ser la diferencia más importante con cada una de las revisiones que hemos hecho en
el bloque if else.
Así que si comparamos el bloque switch con el bloque if else, en este caso solamente estamos proporcionando
el valor de la variable día semana, el cual contiene el número que queremos empezar a revisar con cada
caso.
En cambio, el bloque if nosotros tenemos que hacer directamente la comparación.
Si el valor del día de semana es igual a uno, si es igual a dos, si es igual a tres, etc Así que
esto lo vamos a sustituir precisamente indicando con la palabra reservada keys y posteriormente el valor
con el que queremos comparar.
Y terminamos con dos puntos y posteriormente este caso va a ser algo similar, pero agregamos la palabra
reservada case y revisamos si es el caso dos y así continuamos con cada uno de los casos, de tal manera
que la sintaxis va a ser un poco más simple y es más claro de entender.
Sin embargo, ya sabemos las limitantes de esta estructura Switch solamente podemos comparar con valores
numéricos, así que en este caso empezamos a revisar el caso uno aquí también debido a que estamos dentro
de la estructura switch ya es otro bloque de código y agregamos también este tabulador.
Si el IDE no nos agrega este tabulador, nosotros lo agregamos ya que ya estamos dentro de otro bloque
de código.
Y también de igual manera este caso a su vez abre otro bloque de código.
Aunque no se están usando llaves, prácticamente es lo mismo después de los dos puntos.
Vamos a agregar un tabulador y en este caso, dentro ya de este bloque de código, vamos a mandar a
imprimir, que es el día lunes.
Así que primero imprimimos un salto de línea y posteriormente el texto lunes.
Ahora recordemos que en cada uno de los casos tenemos que agregar la sentencia break, de lo contrario
se va a ir ejecutando los demás casos hasta que se encuentre la sentencia break en alguno de ellos y
sin ninguno de los siguientes casos.
Contiene la palabra break.
Entonces así.
Ejecutando todos los bloques de código de cada uno de los casos hasta llegar al final de la sentencia
Switch.
Así que ese es el primer caso.
Obviamente, este bloque de código podría tener más código, no necesariamente una línea.
Bien podríamos tener más código.
Y entonces por eso les he comentado que este es un nuevo bloque de código.
Aunque aquí no tenemos llaves, aquí no tenemos llaves para abrir y cerrar cada uno de estos casos.
Sin embargo, si se considera como un nuevo bloque de código, por ello es que estamos agregando también
otro tabulador y a su vez también este caso se considera otro bloque de código.
Por ello es que también tenemos este tabulador dentro de la estructura switch y así con cada uno de
los casos.
Así que ya sabemos que podemos tener más líneas de código, pero en este ejercicio solo tenemos una
y posteriormente la sentencia break.
Bien, vamos a continuar con los demás casos.
De igual manera, si el IDE nos quita este tabulador, nosotros lo agregamos por las razones que ya
hemos explicado y entonces si es el caso dos, si coincide el día de la semana con el valor de dos,
entonces imprimimos que es el día martes.
Y aquí entonces de manera automática se está haciendo la siguiente revisión el día de semana esta variable
estamos revisando si es igual al valor de dos y si esto regresa verdadero, entonces se ejecuta este
bloque de código, lo que está dentro de este caso.
Sin embargo, esta revisión es de manera automática.
Nosotros no tenemos que hacer manualmente.
A diferencia de la sentencia if else, donde sí tenemos que hacer la manualmente, pero tenemos la ventaja
que podemos utilizar no solamente valores numéricos, sino la comparación puede ser con cualquier otro
tipo de valor o incluso una expresión más compleja.
Pero como hemos comentado, al final simplemente la condición es que regrese un valor de tipo booleano.
Bien, y entonces continuamos con los demás casos.
Recordemos que tenemos que romper cada uno de los casos.
Continuamos con el caso tres y prácticamente en este punto ya sería lo mismo.
Simplemente empezamos a realizar las comparaciones respectivas con cada uno de los días, pero ya el
código es prácticamente el mismo.
Así que revisamos ahora el caso cuatro y también hemos comentado, por ejemplo, que si queremos reutilizar
el código, por ejemplo del caso uno para que también se ejecute en caso de que aplique para el caso
dos, entonces simplemente después del caso uno ponemos caso dos de nueva cuenta y entonces este código
aplicaría tanto para el caso uno y también para el caso dos.
Obviamente este código ya lo tendríamos que haber quitado.
Simplemente les agrego esta sintaxis para que vean que también se puede reutilizar bloques de código
y simplemente ir agregando los casos donde queramos reutilizar estos bloques de código.
De momento vamos a continuar con el ejercicio.
Imprimimos ahora el día jueves.
Y agregamos un break para que hasta allí se ejecute en caso de que coincida este día de la semana,
de lo contrario se va a seguir ejecutando los demás días.
Los demás casos imprimimos ahora que es el día viernes.
Aquí me faltó cerrar esta cadena para que no marque ningún error.
Agregamos un break y ahora agregamos en el caso seis.
Si es el número seis, el proporcionado, entonces mandamos a imprimir, que es el día sábado, incluyendo
el break.
Ahora, un detalle más también es que en el lenguaje C realmente no tenemos que agregar enters entre
nuestro código.
Bien podríamos tener este código primero el print y posteriormente el break, y todo esto en una sola
línea.
Sin embargo, esto no es buena práctica, ya que aunque para el compilador no hay ningún problema en
ejecutar estas líneas debido a que encuentra los puntos y coma y básicamente lo toma como una nueva
línea de código para nosotros como programadores, sí nos puede afectar, ya que la lectura del código
podría ser más compleja.
Sin embargo, podrían encontrar este código sobre todo en la estructura switch en el cual están agregando
el break dentro de la misma línea.
Y entonces para el compilador esto no hay ningún problema.
Incluso los espacios realmente los ignora el compilador.
Tanto las nuevas líneas como los espacios en blanco, el compilador los ignora.
Pero para leer correctamente nuestro código, entonces a nosotros sí nos conviene utilizar tanto espacios
como agregar el código en nuevas líneas para que todo se lea correctamente.
Bien, vamos a agregar el último caso en caso de que sea el valor siete el que sea proporcionado.
Entonces mandamos a imprimir, que es el día domingo.
Agregamos el break y también vamos a agregar la opción por default.
De manera similar a lo que hicimos en nuestro ejercicio.
En el cual agregamos nuestro bloque ELS e imprimimos valor de día erróneo, así que vamos a hacer algo
similar.
En caso de que no coincida con ninguna de las opciones anteriores.
Entonces aquí vamos a utilizar la palabra reservada default y se va a ejecutar.
Vamos a mandar a imprimir valor día erróneo e imprimimos el valor de la variable que se ha proporcionado.
Es un valor de tipo numérico almacenado en la variable día semana.
Y aunque aquí podemos agregar también un break, realmente como es ya la última línea de código, simplemente
al agregar el break lo que va a hacer es romper esta línea e irnos a esta línea después de nuestro bloque
switch.
Así que realmente este break no lo podríamos ahorrar, así que ya depende de nosotros si lo queremos
dejar o no, pero básicamente el resultado va a ser el mismo.
Voy a quitar aquí este caso solamente era un ejemplo de la sintaxis que podemos utilizar, así que con
esto ya tenemos nuestro ejercicio completo.
El día de la semana estamos revisando cada uno de los casos.
Si el día de la semana proporcionado es igual al valor de uno, entonces se imprime día lunes.
Si se proporcionó el valor de dos, se imprime día martes, etc y si no coincide con alguna de las opciones
anteriores, se imprime valor de día erróneo.
Vamos a ejecutar nuestro código, pero antes vamos a poner entre comentarios el bloque if else para
que no se ejecute este código.
Así que ya tenemos la referencia.
Vamos a ejecutar.
Y aquí me equivoqué.
Nos está indicando secuencia de escape desconocida y si damos doble clic sobre esta línea nos lleva
a la línea 15.
Tiene que ser diagonal inversa n y como no agregué la N, entonces considera que es diagonal inversa
M Este carácter no lo conoce.
No es una secuencia de escape válida.
En este caso la secuencia de escape válida ya sabemos que es diagonal inversa N que es una nueva línea.
Bien, con eso ya corregido vamos a ejecutar y entonces proporcionamos el día de la semana, por ejemplo,
el valor de uno y nos imprime correctamente, que es el día lunes.
Y así continuamos con los demás casos.
Ya ustedes pueden revisar cada uno de los casos.
Yo solamente voy a proporcionar dos valores, en este caso el valor de siete directamente, que es el
día domingo.
Y por último, voy a probar el caso en que proporcionemos un valor que no es válido, por ejemplo,
el valor de -1, y entonces se imprime el valor día erróneo.
Así que esto, lo interesante de la programación, realmente estamos logrando resolver exactamente el
mismo ejercicio con el mismo resultado, pero de manera interna estamos utilizando diferente código.
En el primer ejemplo vimos la estructura if else y en este segundo ejemplo estamos utilizando la sentencia
switch y la estructura switch la vamos a poder utilizar solamente en los casos donde las comparaciones
sean con valores numéricos, como en este ejemplo.
Sin embargo, no va a poder aplicar a todos los casos y por ello es que normalmente vamos a estar utilizando
en mayor medida la estructura if else, pero si tenemos la oportunidad de simplificar nuestro código,
entonces podemos aplicar sin ningún problema la sentencia switch.
Bien, eso es todo.
Por esta elección, pónganla en práctica y nos vemos en el siguiente vídeo.
Saludos.