There are a lot of different ways to complete a loop. Here's a list of the most popular ones.
Loop
Loop in increments of 2 until x
reaches 20.
x = 0
loop do
x += 2
break if x >= 20
puts x
end
Loop through in increments of 2 until you reach 20. If x
reaches 6, move on through next if
.
x = 0
loop do
x += 2
break if x >= 20
next if x == 6
puts x
end
While Loop
Block-style while
x = 0
while x < 20
x += 2
puts x
end
Single line-style while.
x = 0
puts x += 2 while x < 100
Until
y = 3245
puts y /= 2 until y <= 1
Iterators
Traversing through a fixed set of data
Times do
Iterate 5 times.
5.times do
puts "Hello"
end
Up to
Single line style.
1.upto(5) { puts "hello" };
Block style.
1.upto(5) do |i|
puts "hello " + i.to_s
end
This example is similar to the one above with with an explicit each
.
1.upto(3).each do |i|
puts "hello " + i.to_s
end
Down to
Single line.
5.downto(1) { puts "hello" };
Each
Use each on a Range.
(1..5).each { puts "hello" };
Present each as a block.
fruits = [ 'banana', 'apple', 'pear' ]
fruits.each do |fruit|
puts fruit.capitalize
end
For In
fruits = [ 'banana', 'apple', 'pear' ]
for fruit in fruits
puts fruit.capitalize
end
This uses for
and step
to increment by 2 within a range of 0 and 10.
for i in (0..10).step(2) do
puts i
end
Step Iterator
This is really handy if you're doing something like a clock or stopwatch.
(time1..time2).step(15.minutes) do |time|
end
Use Range and go from 0 to 10 in increments of 1.
(0..10).step(1) do |i|
puts "Hello #{i}"
end
Start at one and go to 5 in increments of one.
1.step(5,1) do |i|
puts "Hello #{n}"
end
Resources
Subscribe to new posts
Processing your application
Please check your inbox and click the link to confirm your subscription
There was an error sending the email