Curso de programación

El condicional Según de PSeInt

Capítulo 23: El condicional switch en programación

En el capítulo anterior te expliqué como funcionaba el condicional if (Si-Entonces en PSeInt). En este, te voy a mostrar el otro tipo de condicional. Muy a menudo conocido como switch en muchos lenguajes de programación.

El condicional switch en Python se llama match y en PSeInt Según.

Se puede traducir la palabra "switch" como conmutador en español, aunque casi nadie utiliza ese término. Normalmente no se traduce del inglés.

Puedes añadir el comando completo con este botón de la sección de comandos:

Estructura según de pseint

Sintaxis de Según de PSeInt

Segun variable_numerica Hacer
	opcion_1:
		secuencia_de_acciones_1
	opcion_2:
		secuencia_de_acciones_2
	opcion_3:
		secuencia_de_acciones_3
	De Otro Modo:
		secuencia_de_acciones_dom
Fin Segun

Partes del condicional Según de PSeInt

Parte Segun

La parte Segun es con la que se declara la estructura estilo "switch" en PSeInt. A esta, le vamos a pasar una variable de cualquier tipo para que le de un valor.

Entonces, evaluaremos según ese valor. Por ejemplo, si es una variable numérica que tiene un valor 10, solo ese valor, dará un valor booleano VERDADERO.

Parte Hacer

Esta parte, realmente no tiene mucha utilidad. Se utiliza para expresar que en torno al valor dado en el Según, se "hará" lo siguiente.

Parte opción o case

Las opciones, también llamadas con frecuencia "case" en inglés, son posibles bloques de código que se ejecutarán solo si coinciden con el valor de la variable pasada. Entonces, si el valor de la variable es 10 y hay una opción 10, esta evalúa como VERDADERO. El resto FALSO.

Parte De Otro Modo

Esta parte, es como el SiNo del condicional Si-Entonces (if). Si todo lo anterior es FALSO, se ejecutará como última alternativa este bloque.

Parte Fin Segun

La última parte, se usa para finalizar la estructura.

Ejemplo práctico del condicional Segun de PSeInt

Empezamos este condicional con la palabra Segun. Ahí espera una variable para evaluar. Según el número que tenga, se cumplirá una de las opciones.

El condicional entra en primero en el primer Caso. Este no tiene porqué tener un valor 1, puede ser otro. Sin embargo, aquí en concreto, se evalúa si el valor de la variable dia_semana es igual a 1, este Caso nos devuelve un VERDADERO y se ejecuta solo él. El resto se ignoran.

Si la primera opción evalúa como FALSO, se pasa a evaluar la segunda. Si el valor de la variable dada al Según concuerda con el valor de esta opción (2), se ejecuta y el resto no se evalúan.

Así sucesivamente hasta llegar al De Otro Modo. Este es el equivalente al SiNo. Si todo es FALSO, siempre se ejecuta el código de este bloque.

Algoritmo ejemplo_condicional_segun
    Definir dia_semana Como Entero
	
    Escribir "Ingrese un número del 1 al 7 para representar un día de la semana:"
    Leer dia_semana
	
    Segun dia_semana Hacer
        Caso 1:
            Escribir "Lunes"
        Caso 2:
            Escribir "Martes"
        Caso 3:
            Escribir "Miércoles"
        Caso 4:
            Escribir "Jueves"
        Caso 5:
            Escribir "Viernes"
        Caso 6:
            Escribir "Sábado"
        Caso 7:
            Escribir "Domingo"
        De Otro Modo:
            Escribir "Número inválido. Ingrese un valor del 1 al 7."
    Fin Segun
FinAlgoritmo

Probando el algoritmo con Según

Voy a probar do opciones, tú pruébalas todas si quieres.
En la primera, introduzco un 4. Esto hace que el Caso 1 sea FALSO, el Caso 2 y Caso 3 igual. Luego llega al 4, coincide y da un VERDADERO que hace que se ejecute el bloque de dicho Caso.

Switch condicional programación

Si todos son FALSO, se ejecuta el bloque De Otro Modo.

Diagrama de flujo del condicional Según

Tenemos un algoritmo muy ordenado, con 8 posibles caminos que pasan por el Según.

Condicional Switch (según) de PSeInt

Según (switch) vs Si-Entonces (if)

El condicional switch suele ser menos utilizado que el if en los programas. Ya que se utiliza más para casos donde tienes un montón de opciones relacionadas y las quieres evaluar todas de forma unificada.

Sin embargo, aunque el if se utilice más en general, no es la mejor opción en todos los casos. Por ejemplo, para esta evaluación, es mejor un switch que un if. Veamos la diferencia con el mismo código escrito con Si-entonces (if).

Algoritmo ejemplo_condicional_si
    Definir dia_semana Como Entero
	
    Escribir "Ingrese un número del 1 al 7 para representar un día de la semana:"
    Leer dia_semana
	
    Si dia_semana = 1 Entonces
        Escribir "Lunes"
    Sino
        Si dia_semana = 2 Entonces
            Escribir "Martes"
        Sino
            Si dia_semana = 3 Entonces
                Escribir "Miércoles"
            Sino
                Si dia_semana = 4 Entonces
                    Escribir "Jueves"
                Sino
                    Si dia_semana = 5 Entonces
                        Escribir "Viernes"
                    Sino
                        Si dia_semana = 6 Entonces
                            Escribir "Sábado"
                        Sino
                            Si dia_semana = 7 Entonces
                                Escribir "Domingo"
                            Sino
                                Escribir "Número inválido. Ingrese un valor del 1 al 7."
                            FinSi
                        FinSi
                    FinSi
                FinSi
            FinSi
        FinSi
    FinSi
FinAlgoritmo

Con esto, puedes ver qué condicional es mejor en este caso. Habrá otros casos en los que el if sea más conveniente. Eso lo aprenderás con un poco de práctica.

Y si miras el diagrama, es un auténtico laberinto:

Diagrama del condicional if

Te recomiendo que vayas revisando los diagramas y vayas viendo cual es más fácil de leer. Seguramente, esa sea la opción acertada en tu algoritmo.

Como curiosidad, un switch de red es un dispositivo electrónico que conecta múltiples dispositivos en una red local informática, permitiendo la comunicación entre ellos al enviar los datos a los dispositivos de destino correctos. Por otro lado, un switch de programación es una estructura de control que selecciona entre múltiples opciones o casos basados en el valor de una expresión, redirigiendo el flujo del programa hacia el caso correspondiente. Ambos switches, ya sea en el ámbito de redes o programación, tienen la función de tomar decisiones y direccionar el flujo en función de condiciones específicas.

Anterior Siguiente

Comentarios

Si te quedan dudas sobre el temario, sobre Programación, PseInt, Python o cualquier otra cosa relacionada o simplemente quieres agradecer, aquí tienes tu sitio para dejar tu granito de arena. Gracias por tus comentarios y por darle vida a este sitio web.

Programación Fácil YouTube

Suscríbete

Si te ha gustado este curso y crees que el trabajo merece la pena, te agradeceré eternamente que te suscribas a mi canal de YouTube para apoyarme y que pueda seguir haciendo cursos gratuitos.

Además, si te encanta la programación, tienes un montón más de cursos gratuitos para ver.

No solo eso, podrás participar enviándome comentarios con tus sugerencias para temas específicos o cursos completos o incluso las dudas que tengas y las intentaré ir resolviendo en los cursos que estén todavía abiertos.