Skip to main content

Loops as Expressions

Like return, break accepts a value. This can be used to yield a value from a loop. Loops in Zig also have an else branch, which is evaluated when the loop is not exited with a break.

fn rangeHasNumber(begin: usize, end: usize, number: usize) bool {
var i = begin;
return while (i < end) : (i += 1) {
if (i == number) {
break true;
}
} else false;
}

test "while loop expression" {
try expect(rangeHasNumber(0, 10, 3));
}