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));}