Loops/Wrong ranges: Difference between revisions
Content added Content deleted
Langurmonkey (talk | contribs) |
(Zig added) |
||
Line 3,086: | Line 3,086: | ||
Start equal stop equal zero: zero increment |
Start equal stop equal zero: zero increment |
||
Range(0, 0, 0) -> [0 0 0 0 0 0 0 0 0 0] |
Range(0, 0, 0) -> [0 0 0 0 0 0 0 0 0 0] |
||
</pre> |
|||
=={{header|Zig}}== |
|||
<syntaxhighlight lang="zig"> |
|||
const std = @import("std"); |
|||
const stdout = @import("std").io.getStdOut().writer(); |
|||
const limit = 10; |
|||
fn printRange(start: isize, stop: isize, step: isize, comment: []const u8) !void { |
|||
try stdout.print("{s}\r\x1b[43C: ", .{comment}); |
|||
var c: u8 = 0; |
|||
var n = start; |
|||
while (n <= stop) : (n += step) { |
|||
c += 1; |
|||
if (c > limit) break; |
|||
try stdout.print("{d} ", .{n}); |
|||
} |
|||
try stdout.print("\n", .{}); |
|||
} |
|||
pub fn main() !void { |
|||
try printRange(-2, 2, 1, "Normal"); |
|||
try printRange(-2, 2, 0, "Zero increment"); |
|||
try printRange(-2, 2, -1, "Increments away from stop value"); |
|||
try printRange(-2, 2, 10, "First increment is beyond stop value"); |
|||
try printRange(2, -2, 1, "Start more than stop: positive increment"); |
|||
try printRange(2, 2, 1, "Start equal stop: positive increment"); |
|||
try printRange(2, 2, -1, "Start equal stop: negative increment"); |
|||
try printRange(2, 2, 0, "Start equal stop: zero increment"); |
|||
try printRange(0, 0, 0, "Start equal stop equal zero: zero increment"); |
|||
} |
|||
</syntaxhighlight> |
|||
{{out}} |
|||
<pre> |
|||
Normal : -2 -1 0 1 2 |
|||
Zero increment : -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 |
|||
Increments away from stop value : -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 |
|||
First increment is beyond stop value : -2 |
|||
Start more than stop: positive increment : |
|||
Start equal stop: positive increment : 2 |
|||
Start equal stop: negative increment : 2 1 0 -1 -2 -3 -4 -5 -6 -7 |
|||
Start equal stop: zero increment : 2 2 2 2 2 2 2 2 2 2 |
|||
Start equal stop equal zero: zero increment: 0 0 0 0 0 0 0 0 0 0 |
|||
</pre> |
</pre> |
||