A煤n no tienes acceso a esta clase

Crea una cuenta y contin煤a viendo este curso

Curso de Ruby

Curso de Ruby

Sim贸n Soriano

Sim贸n Soriano

Uso de ciclos

10/39
Recursos

Aportes 16

Preguntas 0

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesi贸n.

Ciclos

Los ciclos nos permiten repetir la ejecuci贸n de un c贸digo las veces que consideremos necesarias, podemos utilizar cualquiera de los siguientes.

  • While: Ejecuta c贸digo mientras condicional es verdadero
  • until: Ejecuta c贸digo mientras condicional es falso
  • for: Ejecuta el c贸digo una vez para cada elemento en la expresi贸n
  • each: Ejecuta el c贸digo una vez para cada elemento en la expresi贸n, sin crear un nuevo 谩mbito para las variables locales
  • times: Ejecuta el c贸digo la cantidad de veces estipulada en la variable que condiciona 鈥渢imes鈥
  • break: Termina el bucle m谩s interno.
  • next: Salta a la siguiente iteraci贸n del bucle m谩s interno
  • redo: Reinicia esta iteraci贸n del bucle m谩s interno, sin verificar la condici贸n del bucle
  • retry: Se ejecuta de nuevo la secci贸n del c贸digo que se rescat贸.

Conceptos extra铆dos de :
- https://makeitrealcamp.gitbook.io/ruby-book/ciclos
- http://rubysur.org/aprende.a.programar/capitulos/condicionales.html
- https://www.tutorialspoint.com/ruby/ruby_loops.htm
- https://blog.honeybadger.io/how-to-try-again-when-exceptions-happen-in-ruby/

Para los que quieran conocer mas de los shorcut en VsCode les dejo aqui un al enlace al PDF

#聽Se loopea mientras la condici贸n sea verdadera

secret_word="estebandido"

guess=""
guess_count=0
guess_limit=3
out_of_guesses=false

#mientras la palabra a adivinar sea difenrete de la palabra secreta y no estes outofguesses
while guess != secret_word and !out_of_guesses

  if guess_count<guess_limit
  puts "Enter guess"

      guess = gets.chomp()
      guess_count+=1
    else
      out_of_guesses=true

    end
end

if out_of_guesses
  puts "looser"
else
  puts "you`re a master"
end

Ciclos en Ruby


Crear iteraciones o repeticiones en Ruby es muy parecido a como se hace en otros programas, en el siguiente c贸digo vamos a declarar un ciclo de while

#b谩sica
while condicion do
    puts "Hola"
end

#Ejemplo de la clase
x = 1

while x < 5 do
    puts "Hola #{x}"
    x +=1
end

Para que el resultado sea menor y igual a 5 tenemos que poner <=

while x <= 5 do
    puts "Hola #{x}"
    x +=1
end

Cuando declaramos un loop se convertir谩 en un ciclo infinito, as铆 que nosotros expl铆citamente tenemos que decirle cuando queremos que termine

loop do
    puts "Hola #{x}"
    break if x >= 5
    x +=1
end

Y para declarar una for, lo haremos de la siguiente manera

for i in 1..5 do
    puts "Hola #{i}"
end

Tambi茅n podemos hacer una iteraci贸n es creando un Array y pasandole el m茅todo .each

[1,2,3,4,5].each { |x| puts "Hola #{x}" }

Y por 煤ltimo podemos crear un ciclo con el m茅todo .times, aunque este comienza en 0

5.times { |x| puts "Hola #{x}" }

Shortcuts

ctrl+} o ctrl+alt+a , Para comentar las l铆neas de c贸digo que est谩n seleccionadas en VSC

Hice este c贸digo de pr谩ctica para las tablas de multiplicar, usando el for y el while.

for bb in 1..12 do
    _x = 1
    while _x <= 12 do
      puts "#{bb}x#{_x}=#{bb*_x}"
      _x+=1         
    end
    puts "\n"
end
4.times do |n|
	p "hola #{n}
end

each: metodo para iterar arrays

ciclo for

Me tom茅 el tiempo para hacer un peque帽o juego para adivinar n煤meros 馃槂

numero_adivinar = rand(1..10)
puts "Adivina el n煤mero del 1 al 10"
print "? "
numero_jugador = gets.chomp.to_i

loop do
    if numero_jugador < numero_adivinar
        puts "Mas!"
    elsif numero_jugador > numero_adivinar
        puts "Menos!"
    elsif numero_adivinar == numero_jugador
        puts "Ganaste! Jugar de nuevo? (S / N)"

        print "? "
        repetir = gets.chomp

        loop do
            break if repetir == "S" || repetir == "N"
            print "? "
            repetir = gets.chomp
        end

        break if repetir == "N"

        puts "Adivina el n煤mero del 1 al 10"
        numero_adivinar = rand(1..10)  
    end

    print "? "
    numero_jugador = gets.chomp.to_i
end

Si quieren trabajar comodos con ruby en VSC vean este tutorial para configurarlo.

break if

como hizo el truco para comentar todo en el minuto 2

x = 1

until x >= 16 do
    puts x
    x += 1

end

Aqui si varia un poquito Ruby respecto a los dem谩s lenguajes鈥 esperaba

if x >= 5
	break

en vez de 鈥渂reak if鈥︹ xD

Pues a estas alturas extra帽e prettier y eslint 馃槅

les comparto un art铆culo de medium que encontre
Best vscode ruby extensions

Hice un programa que calcula el salario de los empleados con sus descuentos de ley.

loop do 
    puts %Q(Ingrese el nombre del empleado:)
    _empleado = gets.chomp
    puts %Q(Ingrese su salario:)
    _salario = gets.chomp.to_f
    _isss = 0.03 *_salario
    _afp = (7.25/100)*_salario
    _renta = 0.10*_salario

    if _salario > 525.00 
        _salario -= (_isss + _afp + _renta)
        puts "Renta: $#{_renta}"
    elsif _salario < 525.00
        _salario -= (_isss + _afp)
    end

    puts "ISSS: $#{_isss}"
    puts "AFP: $#{_afp}"
    puts "El salario neto de #{_empleado} es de $#{_salario} \n\n"
    puts "Si quiere calcular el salario de otro empleado presione 1 \n  presione 2 para salir del programa."
    _respuesta = gets.chomp.to_i
    break if _respuesta == 2
end