Brittany

Posted on

Day 4: #100DaysofCode - More Iterators

I wanted to review some more iterators as promised in my previous post

Times Iterator

The Times Iterator helps when you want to receive something n number of times. For example, if you wanted to say "HA!" six times you would use the times iterator like so:

``````6.times do
puts "HA!"
end
``````

This will print "Ha!" to the screen 6 times. Like so:

``````HA!
HA!
HA!
HA!
HA!
HA!
``````

You could also take an argument and use interpolation like so:

``````5.times do |name|
puts "Hello! #{name}"
end
``````

Just like an array index, the times index starts at 0. So the output above would look like the following:

``````Hello! 0
Hello! 1
Hello! 2
Hello! 3
Hello! 4
``````

Upto Iterator

The Upto Iterator allows you to could up to a number of your choice. But it has to be an ascending number, otherwise you will not receive output. I feel like this iterator is perfect for when you are trying to output a specific range of numbers, like so:

``````10.upto(20) do |n|
puts n
end
``````

Output:

``````10
11
12
13
14
15
16
17
18
19
20
``````

Downto Iterator

The Downto Iterator is pretty much the opposite of the Upto Iterator. In that it gives you a range of numbers descending. But just like the upto iterator, it has to be in a descending order, otherwise you will not receive output. Like so:

``````10.downto(5) do |n|
puts n
end
``````

Output:

``````10
9
8
7
6
5
``````

Step Iterator

The Step Iterator allows you to skip values by a number. So if you wanted to count by 5 to 30, you would use the step iterator like this:

``````(0..30).step(5) do|i|
puts i
end
``````

Output:

``````0
5
10
15
20
25
30
``````

Each_Line Iterator

The Each_line Iterator is used to iterate over a new line in a string.

Syntax

``````string.each_line do |variable_name|
# code to be executed
end
``````

Example

``````"Now\nwe\nunderstand\niterators.".each_line do|i|
puts i
end
``````

Output:

``````Now
we
understand
iterators.
``````

Sources used for this blog: