28 lines
1 KiB
Zig
28 lines
1 KiB
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");
|
|
}
|