Algoritmos y Programación — Parte III

Estructuras de selección

Juan Manrique
3 min readApr 22, 2019

Estructuras de selección

Existen problemas que requieren permitir o evitar la ejecución de ciertas instrucciones en función de una condición determinada. Las estructuras condicionales permiten a un programa ejecutar o no una secuencia de instrucciones, según una expresión lógica.

Condicional simple — If..then

Al ejecutarse una sentencia if, se evalúa la expresión (que puede estar entre paréntesis o no) que sigue a la palabra reservada “if”. Si la expresión equivale a true, se ejecutan las instrucciones encerradas en el condicional; en caso contrario (la expresión vale false), no se ejecutarán las instrucciones encerradas en el condicional y la ejecución continuará en la sentencia siguiente del programa.

i = rand(10)
if i > 5 then
puts “#{i} es mayor a 5”
end

Condicional con opción por defecto — If..else

La estructura if..else funciona de manera similar a la anterior, con la diferencia de que cuando la condición equivale a false, se ejecutan las instrucciones posteriores al “else”. Las secuencias de instrucciones del if y las del else son mutuamente excluyentes, es decir, solo una de las secuencias de instrucciones podrá ser ejecutada.

i = rand(10)
if i > 5 then
puts “#{i} es mayor a 5”
else
puts “#{i} es menor o igual a 5”
end

Condicional anidado — If..then..elsif..else

La estructura condicional anidada permite implementar decisiones con más de 2 alternativas de ejecución de instrucciones. Esto es posible porque la instrucción que evalúa a false es a su vez un condicional if.

i = rand(20)
if i > 15 then
puts “#{i} es mayor a 15”
elsif i >= 10 then
puts “#{i} está entre 10 y 15”
else
puts “#{i} es menor a 10”
end

Condicional Case (o Switch)

El condicional case se utiliza para seleccionar una de entre múltiples alternativas. Es especialmente útil cuando la selección se basa en el valor de una variable simple (selector) o de una expresión de control simple. La expresión de control o selector se evalúa y se compara con cada una de las opciones constantes enumeradas posteriores a la palabra reservada “when”. Si el valor es igual a alguna de las opciones, entonces se ejecutarán las instrucciones encerradas dentro de esa opción.

n = rand(4)case n
when 0 then
puts “Hoy comes carne”
when 1 then
puts “Hoy comes pollo”
when 2 then
puts “Hoy comes pescado”
else
puts “Hoy comes huevos”
end
### Otro ejemplo del uso del Case
n = rand(4)
opc = case
when n == 0 then
“Carne”
when n == 1 then
“Pollo”
when n == 2 then
“Pescado”
else
“Huevos”
end
puts opc

Condicional Ternario o Expresión Condicional (?)

Es una expresión que equivale a uno de dos valores dependiendo del valor que tome la expresión de control (condición): si la expresión condicional equivale a true, entonces se devuelve el primer valor como resultado; en caso contrario, se devuelve como resultado el segundo valor. Tiene la forma (condición) ? valor1 : valor2 y es equivalente a un condicional con opción por defecto if..else.

i = rand(10)
resultado = (i >= 5) ? “mayor o igual” : “menor”
puts “#{i} es #{resultado} a 5”

La publicación anterior trata sobre El Teorema del Programa Estructurado. La siguiente será sobre las Estructuras Iterativas.

Ejercicios propuestos

  1. Escriba el código Ruby que simule el lanzamiento de 2 dados convencionales.
  2. Que pida 3 números y los muestre en pantalla de menor a mayor.
  3. Que pida 3 números y los muestre en pantalla de mayor a menor.
  4. Escriba el código Ruby que verifique si un número dado es un impar entre 7 y 17 o no.
  5. Escriba el código Ruby que, dado un número del 0 al 9, muestre su equivalente en Castellano (texto).
  6. Escriba el código Ruby que verifique si un año dado es bisiesto o no y devuelva el texto “Bisiesto” o “No bisiesto” según el caso.

--

--

Juan Manrique

SW developer. Coding Mentor @academia_hack. Agile promoter. Writer. Simplifier. Motivator. Venezuelan Rums Expert Evangelist. At your services.