7.2 Selección doble

 La selección doble permite que un programa decida entre dos posibles caminos: uno cuando la condición es verdadera, y otro cuando es falsa. En palabras simples:

“Si ocurre A, hago esto; si no ocurre A, hago aquello.”

En SL esto se implementa mediante la sentencia si … sino, descrita en el capítulo correspondiente del libro oficial (cnc.una.py/sl/libro-sl.pdf).


Sintaxis básica

si ( condición ) { /* bloque que se ejecuta si la condición es verdadera */ } sino { /* bloque que se ejecuta si la condición es falsa */ }

Donde:

  • condición es una expresión que debe evaluarse a lógico.

  • El bloque dentro de si { … } se ejecuta únicamente cuando la condición es verdadera.

  • El bloque dentro de sino { … } se ejecuta cuando la condición es falsa.


Explicación paso a paso

  1. El programa evalúa la condición.

  2. Si es TRUE, ejecuta el bloque del si.

  3. Si es FALSE, ejecuta el bloque del sino.

  4. Después, continúa con el resto del programa.

Esta estructura es útil cuando se necesita una alternativa clara y única ante un caso contrario.


Ejemplo comentado

Programa que determine si una persona es mayor o menor de edad.

var edad : numerico inicio imprimir("Ingrese su edad: ") leer(edad) si ( edad >= 18 ) { imprimir("Usted es mayor de edad.") } sino { imprimir("Usted es menor de edad.") } fin

Explicación del ejemplo:

  • Se pide la edad al usuario.

  • Si edad >= 18, se ejecuta el primer mensaje.

  • Si no, el programa ejecuta el bloque del sino automáticamente.

  • Se garantiza que siempre se ejecutará uno de los dos bloques.


Notas y buenas prácticas

  • Asegúrate de que el sino esté inmediatamente después del bloque de si, sin sentencias entre medio.

  • Usa llaves { } en ambos bloques para mantener consistencia y evitar errores.

  • No pongas condiciones en el sino; si quieres evaluarlas, eso corresponde al apartado siguiente (selección anidada / encadenada).


Errores comunes

  • Olvidar las llaves:
    SL requiere { … } para ambos bloques cuando tienen más de una sentencia.

  • Confundir operadores:
    Usar = en vez de == cuando se desea comparar.

  • Bloques vacíos:
    Escribir un sino vacío puede ser sintácticamente correcto pero confuso para quien lea el código.


Ejemplo adicional

Determinar si un número ingresado es positivo o negativo.

var n : numerico inicio imprimir("Ingrese un número: ") leer(n) si ( n > 0 ) { imprimir("El número es positivo.") } sino { imprimir("El número es negativo o cero.") } fin

Este ejemplo considera que “negativo o cero” es el caso complementario.


Ejercicio práctico

  1. Escribe un programa que pida un número y determine si es par o impar, usando si … sino.

  2. Modifica el mismo programa para mostrar un mensaje especial cuando el número sea 0. (Esto te preparará para la selección encadenada del apartado 7.3.)

No hay comentarios:

Publicar un comentario