Intro

Crystal has a set of looping structures similar to what can be found in other languages.

Each

An each loop is similar to a for loop in other languages.

crystal
# Example each loop.
stuff_and_things = ["stuff", "things"]
stuff_and_things.each do |item|
    puts item
end

# Example each loop with an index.
stuff_and_things = ["stuff", "things"]
stuff_and_things.each_with_index do |item, idx|
    puts "#{idx} - #{item}"
end

Times

times allows you to iterate for N number of iterations.

crystal
# Exampe times block.
10.times do
    puts "Show me your stuff"
end

While/Loop

while and loop have similar behaviour and start an infinite loop. It is up to the user to program the exit condition.

crystal
# Example of while loop.
is_true = true
while is_true
    puts "blah"
    is_true = false
end

# Example of a loop...er loop.
# Usefull if you want a single iteration.
is_true = true
loop do
    puts "blah"
    break if is_true
end

Tags