08 — Selección Múltiple — Según
Concepto clave
La instrucción
Segúnpermite ejecutar diferentes bloques de instrucciones dependiendo del valor de una variable numérica. Es la alternativa elegante a múltiplesSianidados cuando se evalúa una sola variable contra valores fijos.
Sintaxis
Segun <variable> Hacer
<valor1>: <instrucciones>
<valor2>, <valor3>: <instrucciones>
...
De Otro Modo: <instrucciones>
FinSegun
Reglas
- La
<variable>debe ser de tipo Numérico- Múltiples valores para una misma opción se separan con comas
,De Otro Modoes opcional — se ejecuta si el valor no coincide con ninguna opción- Las instrucciones de cada opción pueden ocupar más de una línea
Ejemplo básico — Días de la semana
Proceso DiasDeLaSemana
Definir dia Como Entero;
Escribir "Ingrese un número del 1 al 7: ";
Leer dia;
Segun dia Hacer
1: Escribir "Lunes";
2: Escribir "Martes";
3: Escribir "Miércoles";
4: Escribir "Jueves";
5: Escribir "Viernes";
6: Escribir "Sábado";
7: Escribir "Domingo";
De Otro Modo: Escribir "Número inválido";
FinSegun;
FinProceso
Ejemplo — Valores múltiples por opción
Cuando dos o más valores producen el mismo resultado, se separan con coma:
Proceso DiasHabilesODescanso
Definir dia Como Entero;
Leer dia;
Segun dia Hacer
1, 2, 3, 4, 5: Escribir "Día hábil";
6, 7: Escribir "Fin de semana";
De Otro Modo: Escribir "Número fuera de rango";
FinSegun;
FinProceso
Ejemplo — Menú de calculadora
Proceso Calculadora
Definir a, b Como Real;
Definir op Como Entero;
Escribir "=== CALCULADORA ===";
Escribir "1. Sumar";
Escribir "2. Restar";
Escribir "3. Multiplicar";
Escribir "4. Dividir";
Escribir "Elija opción: ";
Leer op;
Escribir "Primer número: ";
Leer a;
Escribir "Segundo número: ";
Leer b;
Segun op Hacer
1:
Escribir "Resultado: ", a + b;
2:
Escribir "Resultado: ", a - b;
3:
Escribir "Resultado: ", a * b;
4:
Si b <> 0 Entonces
Escribir "Resultado: ", a / b;
SiNo
Escribir "Error: división por cero";
FinSi;
De Otro Modo:
Escribir "Opción no válida";
FinSegun;
FinProceso
Sidentro deSegúnLas instrucciones dentro de cada opción pueden incluir estructuras completas como 07 - Condicional Si–Entonces, 09 - Lazo Mientras, etc.
Comparación — Según vs Si anidado
El mismo problema con ambas estructuras:
Con Si anidado:
Si op = 1 Entonces
Escribir a + b;
SiNo
Si op = 2 Entonces
Escribir a - b;
SiNo
Si op = 3 Entonces
Escribir a * b;
FinSi;
FinSi;
FinSi;
Con Según (más limpio):
Segun op Hacer
1: Escribir a + b;
2: Escribir a - b;
3: Escribir a * b;
FinSegun
Cuándo usar cada uno
- Usa
Segúncuando evalúas una variable contra valores numéricos específicos- Usa 07 - Condicional Si–Entonces cuando evalúas rangos, condiciones compuestas o variables de tipo texto
Relación con otros temas
- 07 - Condicional Si–Entonces — alternativa para condiciones complejas o rangos
- 05 - Expresiones y Operadores — la variable del
Segúnpuede ser el resultado de una expresión - Tipo Numérico — el
Segúnsolo trabaja con variables numéricas - 06 - Entrada y Salida —
Segúntípicamente procesa valores leídos conLeer
| Contribución: Alexis Carrillo | Círculo Interno • EvoClub | Creado con Quartz v4.5.2 © 2026