The for construct it's usually used for iteration over collections and for counting.
The following loop counts from 0 to 9:
for(var i =0; i <10; i++){ say i}
Alternatively, using a simpler form of the for-loop:
for(0..^10){|i| say i}
To iterate over an array, Sidef supports yet another form of the for loop:
for i in[1,2,3,4]{ say i}
The for-in loop is a generalization of the for loop, supporting iteration over any object that respond to the iter method, which must return a block as the iterator, and the block should return one value at a time when it's called, or nil when there are no other values to return, which will break the loop.
Alternatively, the object may also respond to the to_a method, which must return an object of type Array. Using this knowledge, we can iterate over Hash objects because the Hash class implements the to_a method:
for i,k inHash(a =>1, b =>2){ say "<#{i}> <#{k}>"}
The for-in loop can also be used in iterating over matrices: