Haxe Code Cookbook
Haxe programming cookbookData structuresStepped iterator

Stepped iterator

Haxe has a special range operator for(i in 0...5) to iterate forward. This does not allow to modify i in place, thus you cannot make it iterate in steps.

You could use a while loop for this:

var total = 10;
var step = 2;
var i = 0;
while(i < total) {
  i += step;
// 0
// 2
// 4
// 6
// 8

This is not always optimal since you need variables outside the loop.

You can also create custom iterators which provide such functionality.

class StepIterator {
  var end:Int;
  var step:Int;
  var index:Int;

  public inline function new(start:Int, end:Int, step:Int) {
    this.index = start;
    this.end = end;
    this.step = step;

  public inline function hasNext() return index < end;
  public inline function next() return (index += step) - step;


Loop in steps of two from 0 to 10.

Learn more about iterators here: https://haxe.org/manual/lf-iterators.html

Last modified:
Category:  Data structures