Condicionales

Objetivos

  • Utiliza gets para recibir la entrada de datos desde el teclado por parte del usuario de tu programa.

  • Utiliza una sentencia condicional para ejecutar una parte de código sólo una vez.

Paso 1

Crea un archivo nuevo llamado condicionales.rb

Type this in the file condicionales.rb:
print "¿Cuántas manzanas tienes? > "
contador = gets.to_i
puts "Tienes #{contador} manzanas."
Type this in the terminal:
ruby condicionales.rb

Cuando se te solicite, ingresa un número de manzanas y presiona enter.

print es como puts pero no genera una línea nueva después de imprimir en pantalla.

gets, o get string, pausa tu programa y se espera a que el usuario escriba algo y presione la tecla enter. Luego devuelve el valor hacia tu programa y continúa con la ejecución. Como el usuario pudo haber escrito cualquier cosa ('banana', '19.2', '<<!!@@') utilizamos to_i para asegurarnos que lo que venga es un entero. Si el usuario no escribió un entero válido, to_i regresa 0.

Paso 2

Continuando hasta el final de condicionales.rb...

Type this in the file condicionales.rb:
if contador > 5
  puts "¡Muchas manzanas!"
else
  puts 'No muchas manzanas...'
end
Type this in the terminal:
ruby condicionales.rb

La estructura if ... else ... end es una manera de cambiar cuáles líneas de tu programa ejecutar dependiendo de los datos.

Prueba ejecutando tu programa con diferentes valores para contador para ver cada parte del condicional ejecutada.

Paso 3

Lo que va después de if es cualquier expresión que regrese un booleano, (los valores true o false). Aquí están algunas expresiones que regresan true o false:

Type this in irb:
15 < 5
10 == 12
'foo' != 'bar'
Type this in irb:
'sandwich'.end_with?('h')
'sandwich'.end_with?('z')
[1,2,3].include?(2)
[1,2,3].include?(9)

Muchos métodos también regresan true o false. Por convención, los métodos en Ruby que regresan booleanos terminan con signo de interrogación.

Paso 4

También puedes anidar un condicional en un ciclo.

Crea un nuevo archivo llamado condicionales_ciclos.rb

Type this in the file condicionales_ciclos.rb:
frutas = ['manzana', 'pera', 'albaricoque']
frutas.each do |fruta|
  if fruta.start_with?('a')
    puts "#{fruta} empieza con la letra a."
  end
end
Type this in the terminal:
ruby condicionales_ciclos.rb

Prueba cambiando este condicional para que sólo imprima frutas con al menos 5 letras en su nombre. ¡También recuerda cambiar la cadena que estás imprimiendo!

Paso 5

Crea un archivo nuevo llamado ciclo_while.rb

Type this in the file ciclo_while.rb:
total = 0
user_input = nil
while user_input != 'alto'
  print 'Ingresa un número para agregar al total. >'
  user_input = gets.chomp
  total = total + user_input.to_i
end
puts "¡Tu total final fue #{total}!"
Type this in the terminal:
ruby ciclo_while.rb

Un ciclo while continúa repitiéndose hasta que cierta sentencia es falsa. Aquí, el programa continuamente nos pregunta un número hasta que decimos 'alto'.

¡Es fácil para un ciclo while salirse de control! Si el cuerpo de tu ciclo no hace nada para hacer la condición del ciclo while falsa, tu ciclo se ejecutará para siempre.

Explicación

Sin algún tipo de condicional, tu programa haría lo mismo cada vez. Los condicionales te permiten hacer cosas diferentes dependiendo de los datos que tienes a la mano.

¡Ahora que conoces los condicionales, ciclos, arreglos, hashes y cadenas, puedes hacer algunos programas complicados!

Siguiente Paso: