Condicionales en pseudocódigo: Si y Segun

Una condicional hace que el programa elija qué hacer según un dato. Con Si … Entonces … SiNo eliges entre dos caminos, y con Segun eliges entre varias opciones de una misma variable.

Qué es una condicional

Hasta ahora, un programa hace todos sus pasos, uno tras otro. Pero muchas veces la respuesta depende de un dato: si llueve, llevas paraguas; si no, no. Una condicional (también llamada estructura de decisión o selectiva) hace justo eso: revisa una condición y, según el resultado, sigue un camino u otro.

La condición siempre es una pregunta que se responde con verdadero o falso, como edad >= 18 o respuesta = "si". Los operadores de comparación están en la guía de variables y operadores.

Si simple: hacer algo solo cuando se cumple

Lo que está entre Si … Entonces y FinSi solo se ejecuta cuando la condición es verdadera. Si es falsa, el programa se lo salta y sigue después del FinSi. En este ejemplo, una compra de más de 500 pesos tiene 10 % de descuento:

Algoritmo descuento
    Leer total
    Si total > 500 Entonces
        total <- total * 0.9
    FinSi
    Escribir "A pagar: ", total
FinAlgoritmo

Con 800 se cumple la condición y se aplica el descuento. Con 300 no se cumple: el programa salta directo al Escribir y muestra 300.

Si … SiNo: elegir entre dos caminos

Cuando hay algo que hacer en los dos casos, se agrega SiNo. Siempre se ejecuta exactamente uno de los dos bloques, nunca ambos:

Algoritmo par_o_impar
    Leer n
    Si n MOD 2 = 0 Entonces
        Escribir n, " es par"
    SiNo
        Escribir n, " es impar"
    FinSi
FinAlgoritmo

En el diagrama de flujo, la condición es un rombo con dos salidas: una para «Sí» y otra para «No». Las dos ramas se vuelven a juntar antes de seguir.

Diagrama de flujo de Algoritmo par_o_imparInicioLeer nn MOD 2 = 0Escribir n, " es impar"Escribir n, " es par"FinNoSí

Condiciones compuestas: Y, O, NO

A veces una sola comparación no alcanza. Para entrar a un concierto quizá necesitas boleto y ser mayor de edad. Para eso se combinan condiciones:

  • Y: se cumple si las dos partes son verdaderas.
  • O: se cumple si al menos una es verdadera.
  • NO: invierte el resultado.
Algoritmo rango_valido
    Leer calificacion
    Si calificacion >= 0 Y calificacion <= 10 Entonces
        Escribir "Calificación válida"
    SiNo
        Escribir "Fuera de rango"
    FinSi
FinAlgoritmo

Un error frecuente es escribir 0 <= calificacion <= 10, como en matemáticas. En pseudocódigo hay que escribir las dos comparaciones completas y unirlas con Y.

Si anidados: más de dos opciones

Un Si puede ir dentro de otro. Así se resuelven decisiones con tres o más resultados. Este programa clasifica una calificación:

Algoritmo calificacion_letra
    Leer calificacion
    Si calificacion >= 9 Entonces
        Escribir "Excelente"
    SiNo
        Si calificacion >= 6 Entonces
            Escribir "Aprobado"
        SiNo
            Escribir "Reprobado"
        FinSi
    FinSi
FinAlgoritmo

El orden de las preguntas importa. Primero se pregunta por el caso más alto (9 o más). Si no se cumple, ya sabes que es menor que 9 y solo falta distinguir entre aprobado y reprobado. Fíjate también en la sangría: cada FinSi cierra el Si que está a su misma altura.

En el diagrama se ve que hay tres caminos posibles y que, para cada dato, el programa recorre solo uno:

Diagrama de flujo de Algoritmo calificacion_letraInicioLeer calificacioncalificacion >= 9calificacion >= 6Escribir "Reprobado"Escribir "Aprobado"Escribir "Excelente"FinNoNoSíSí

Segun: elegir entre varias opciones

Cuando la decisión depende de los valores exactos de una sola variable, Segun es más claro que muchos Si anidados. Cada opción lleva el valor, dos puntos y lo que hay que hacer. De Otro Modo atrapa cualquier valor que no esté en la lista:

Algoritmo dia_de_la_semana
    Leer dia
    Segun dia Hacer
        1: Escribir "Lunes"
        2: Escribir "Martes"
        3: Escribir "Miércoles"
        4: Escribir "Jueves"
        5: Escribir "Viernes"
        6, 7: Escribir "Fin de semana"
        De Otro Modo: Escribir "Ese día no existe"
    FinSegun
FinAlgoritmo

Una opción puede tener varios valores separados por comas, como 6, 7. Segun sirve para valores exactos (1, 2, 3 o "a", "b"), no para rangos: si necesitas «de 6 a 8», usa Si. Hay un reto completo con esta estructura: día de la semana con Segun.

¿Si o Segun?

Cuándo usar cada uno
SituaciónUsaEjemplo
Dos caminosSi … SiNo¿Aprobó o no?
Rangos de valoresSi anidadosCalificación: 9-10, 6-8, 0-5
Condiciones con Y / OSiTiene boleto y es mayor de edad
Valores exactos de una variableSegunOpción de un menú: 1, 2, 3

Cómo probar una condicional

Un programa con decisiones necesita varios datos de prueba: al menos uno por cada camino, y los valores justo en el límite. Para el programa de calificaciones, prueba 10, 9, 8, 6, 5 y 0. Si la regla dice «6 o más», el 6 es el dato que descubre si escribiste > en lugar de >=.

La prueba de escritorio muestra qué camino tomó el programa. Con 800 en el ejemplo del descuento, se ve que entra al Si y total cambia:

Prueba de escritorio de descuento con total = 800
PasoLíneaInstruccióntotalPantalla
13Leer total800
24Si total > 500 Entonces800
35total <- total * 0.9720
47Escribir "A pagar: ", total720A pagar: 720

Errores comunes

  • Olvidar el FinSi, sobre todo en los anidados. Cada Si necesita el suyo.
  • Usar <- en la condición. Si edad <- 18 no compara: lo correcto es Si edad >= 18.
  • Condiciones que se enciman. Si preguntas primero calificacion >= 6 y luego calificacion >= 9, un 10 nunca llegará a «Excelente». Ordena de lo más específico a lo más general.
  • Comparar textos sin comillas. Si respuesta = si busca una variable llamada si. Lo correcto es Si respuesta = "si".
  • Escribir el rango como en matemáticas (0 <= x <= 10) en lugar de x >= 0 Y x <= 10.

Si olvidas un FinSi, Jaguar te dice cuál y en qué línea empezó el bloque: «Encontré …, pero antes falta …».

Preguntas frecuentes

¿Qué es una estructura condicional en pseudocódigo?

Es una instrucción que hace que el programa elija qué pasos ejecutar según si una condición es verdadera o falsa. Las más comunes son Si … Entonces … SiNo … FinSi y Segun … FinSegun.

¿Cuál es la diferencia entre Si y Segun?

Si evalúa cualquier condición verdadera o falsa, incluidas comparaciones y rangos. Segun compara una sola variable contra valores exactos. Para un menú de opciones Segun es más claro; para rangos o condiciones combinadas se usa Si.

¿Es obligatorio poner SiNo?

No. Si solo hay que hacer algo cuando la condición se cumple, basta con Si … Entonces … FinSi. El SiNo se agrega cuando también hay algo que hacer en el caso contrario.

¿Cuántos Si puedo poner uno dentro de otro?

Los que necesites, pero con más de tres niveles el programa se vuelve difícil de leer. Si todas las preguntas son sobre el valor exacto de una variable, conviene usar Segun.

Sigue aprendiendo