## DEV Community Eric The Coder

Posted on • Updated on • Originally published at eric-the-coder.com

# Sharpen your Ruby: Part 5

I develop in Javascript, Python, PHP, and Ruby. By far Ruby is my favorite programming language.

## Classic Loop

In Ruby like any other programming language we can iterate a number of fix or variable times. Here are a classic infinite loop that will execute until the program crash.

``````loop do
put 'Hello World'
end
``````

## While loop

It is possible loop while a condition is meet.

``````number = 0
while number < 100
puts number
number += 1
end
# Will print numbers from 0 to 99
``````

## Loop until

It is possible loop until a condition is meet.

``````number = 0
until number == 10
puts number
number += 1
end
# Will print numbers from 0 to 9
``````

## Loop x number of times

``````(1..10).each do |i|
puts i
end
# print numbers from 1 to 19
``````

or also

``````10.times { puts "Hello World" }
``````

## Loop through each element

By far, the most use loop is the 'each' iteration

``````# Array of names
names = ['Peter', 'Mike', 'John']

# Iterate the names list
names.each do |name|
puts name
end

# or shorthand version
names.each { |name| puts name }
``````

## Break and Continue

It is possible to stop the loop before the end. It is also possible to skip one iteration and go to the next one.

``````names.each do |name|
next if name === 'Mike'
puts name
end
# Peter
# John
``````

The iteration will skip the puts statement if the name is equal to Mike

``````names.each do |name|
break if name === 'Mike'
puts name
end
# Peter
``````

The iteration will stop if the name is equal to Mike.

# Exercise

Create a little program that:

• Create a loop with 10 iterations (from number 1 to 10)
• Each iteration will print only if the iteration number is even. Odd number will be skip.

Solution

``````10.times do |num|
next if num.odd?
puts "Number #{num}"
end
``````

### Conclusion

That's it for today. The journey just started, stay tune for the next post very soon. (later today or tomorrow)

If you have any comments or questions please do so here or send me a message on twitter.