Las estructuras de control son fundamentales en cualquier lenguaje de programación, ya que permiten dirigir el flujo de ejecución del programa en función de condiciones específicas. En Ruby, las estructuras de control incluyen condicionales y bucles. En esta sección, aprenderemos sobre las estructuras de control más comunes en Ruby y cómo utilizarlas.

Condicionales

if, elsif, else

La estructura condicional if se utiliza para ejecutar un bloque de código solo si una condición es verdadera. Puedes encadenar múltiples condiciones usando elsif y proporcionar un bloque de código alternativo con else.

age = 18

if age < 18
  puts "Eres menor de edad."
elsif age == 18
  puts "Tienes 18 años."
else
  puts "Eres mayor de edad."
end

Explicación:

  • if age < 18: Si la condición es verdadera, se ejecuta el bloque de código dentro de este if.
  • elsif age == 18: Si la condición anterior no es verdadera, se evalúa esta condición.
  • else: Si ninguna de las condiciones anteriores es verdadera, se ejecuta este bloque de código.

unless

La estructura unless es lo opuesto a if. Ejecuta el bloque de código solo si la condición es falsa.

age = 18

unless age < 18
  puts "Eres mayor o igual a 18 años."
end

Explicación:

  • unless age < 18: Si la condición es falsa, se ejecuta el bloque de código dentro de este unless.

case

La estructura case es útil cuando tienes múltiples condiciones que deseas evaluar. Es similar a switch en otros lenguajes de programación.

day = "Lunes"

case day
when "Lunes"
  puts "Hoy es lunes."
when "Martes"
  puts "Hoy es martes."
else
  puts "No es lunes ni martes."
end

Explicación:

  • case day: Evalúa la variable day.
  • when "Lunes": Si day es "Lunes", se ejecuta este bloque de código.
  • else: Si ninguna de las condiciones anteriores es verdadera, se ejecuta este bloque de código.

Bucles

while

El bucle while ejecuta un bloque de código mientras una condición sea verdadera.

i = 0

while i < 5
  puts i
  i += 1
end

Explicación:

  • while i < 5: Mientras i sea menor que 5, se ejecuta el bloque de código.
  • i += 1: Incrementa i en 1 en cada iteración.

until

El bucle until es lo opuesto a while. Ejecuta un bloque de código mientras una condición sea falsa.

i = 0

until i >= 5
  puts i
  i += 1
end

Explicación:

  • until i >= 5: Mientras i sea menor que 5, se ejecuta el bloque de código.
  • i += 1: Incrementa i en 1 en cada iteración.

for

El bucle for itera sobre una colección de elementos, como un array o un rango.

for i in 0..4
  puts i
end

Explicación:

  • for i in 0..4: Itera sobre el rango de 0 a 4, ejecutando el bloque de código para cada valor de i.

loop

El bucle loop ejecuta un bloque de código indefinidamente hasta que se use una instrucción break para salir del bucle.

i = 0

loop do
  puts i
  i += 1
  break if i >= 5
end

Explicación:

  • loop do: Inicia un bucle infinito.
  • break if i >= 5: Sale del bucle cuando i es mayor o igual a 5.

Ejercicios Prácticos

Ejercicio 1: Condicionales

Escribe un programa que pida al usuario que ingrese su edad y luego imprima un mensaje indicando si es menor de edad, tiene 18 años o es mayor de edad.

puts "Ingresa tu edad:"
age = gets.to_i

if age < 18
  puts "Eres menor de edad."
elsif age == 18
  puts "Tienes 18 años."
else
  puts "Eres mayor de edad."
end

Ejercicio 2: Bucles

Escribe un programa que imprima los números del 1 al 10 usando un bucle while.

i = 1

while i <= 10
  puts i
  i += 1
end

Ejercicio 3: Bucle for

Escribe un programa que imprima los elementos de un array usando un bucle for.

array = [1, 2, 3, 4, 5]

for element in array
  puts element
end

Resumen

En esta sección, hemos cubierto las estructuras de control en Ruby, incluyendo condicionales (if, elsif, else, unless, case) y bucles (while, until, for, loop). Estas estructuras son esenciales para dirigir el flujo de ejecución de tu programa en función de condiciones específicas. Asegúrate de practicar con los ejercicios proporcionados para reforzar tu comprensión de estos conceptos. En el próximo módulo, exploraremos las variables y los tipos de datos en Ruby.

© Copyright 2024. Todos los derechos reservados