ziglings/exercises/30_switch.zig

54 lines
1.6 KiB
Zig
Raw Normal View History

2021-01-31 17:48:34 -05:00
//
// The "switch" statement lets you match the possible values of an
// expression and perform a different action for each.
//
// This switch:
//
// switch (players) {
// 1 => startOnePlayerGame(),
// 2 => startTwoPlayerGame(),
// else => {
// alert();
// return GameError.TooManyPlayers;
// }
// }
//
// Is equivalent to this if/else:
//
// if (players == 1) startOnePlayerGame();
// else if (players == 2) startTwoPlayerGame();
// else {
// alert();
// return GameError.TooManyPlayers;
// }
2021-02-15 16:55:44 -05:00
//
2021-01-31 17:48:34 -05:00
const std = @import("std");
pub fn main() void {
const lang_chars = [_]u8{ 26, 9, 7, 42 };
for (lang_chars) |c| {
switch (c) {
2021-02-15 16:55:44 -05:00
1 => std.debug.print("A", .{}),
2 => std.debug.print("B", .{}),
3 => std.debug.print("C", .{}),
4 => std.debug.print("D", .{}),
5 => std.debug.print("E", .{}),
6 => std.debug.print("F", .{}),
7 => std.debug.print("G", .{}),
8 => std.debug.print("H", .{}),
9 => std.debug.print("I", .{}),
2021-01-31 17:48:34 -05:00
10 => std.debug.print("J", .{}),
// ... we don't need everything in between ...
25 => std.debug.print("Y", .{}),
26 => std.debug.print("Z", .{}),
// Switch statements must be "exhaustive" (there must be a
// match for every possible value). Please add an "else"
// to this switch to print a question mark "?" when c is
// not one of the existing matches.
}
}
std.debug.print("\n", .{});
}