Ruby Ruby Loops Ruby Loops The Ruby Loop

shree sri
shree sri
540 Points

help me to resolve

def repeat(string, times) fail "times must be 1 or more" if times < 1 counter = 0 loop do string = "shree" puts string if counter == 1 break end end end

loop.rb
def repeat(string, times)
  fail "times must be 1 or more" if times < 1
  counter = 0
  loop do
    string = "shree"
    puts string
    if counter == 1 
    break
    end
  end
end

2 Answers

Elian Kloppenburg
Elian Kloppenburg
22,903 Points

Hi Shree,

Couple of things wrong:

  • You are not printing
  • You are inputting an incorrect string
  • You are not incrementing counter, so it will stay 0 forever
  • You are not comparing counter with times ( both vars ) to break out of the loop

Try your code like this

def repeat(string, times)
  fail "times must be 1 or more" if times < 1
  counter = 0
  loop do
    print string
    counter += 1
    if counter == times
      break    
    end
  end
end

Why there are 3 ends?

What is "fail" here? Search the net revealed that it is a Kernel method like puts=> don't understand.

fail "times must be 1 or more" if times < 1 => don't understand.

Thank you.