From 0bb89e3e41cef893c158326a209aec129382c275 Mon Sep 17 00:00:00 2001 From: Dave Gauer Date: Fri, 8 Jan 2021 17:53:22 -0500 Subject: Added Ex 9,10 for If --- 09_if.zig | 31 +++++++++++++++++++++++++++++++ 10_if2.zig | 20 ++++++++++++++++++++ README.md | 2 +- ziglings | 2 ++ 4 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 09_if.zig create mode 100644 10_if2.zig diff --git a/09_if.zig b/09_if.zig new file mode 100644 index 0000000..3309cbf --- /dev/null +++ b/09_if.zig @@ -0,0 +1,31 @@ +// +// Now we get into the fun stuff, starting with the 'if' statement! +// +// if (true) { +// // stuff +// } else { +// // other stuff +// } +// +// Zig has the usual comparison operators such as: +// +// a == b a equals b +// a < b a is less than b +// a !=b a does not equal b +// +// The important thing about Zig's 'if' is that it *only* accepts +// boolean values. It won't coerce numbers or other types of data +// to true and false. +// +const std = @import("std"); + +pub fn main() void { + const foo = 1; + + if (foo) { + // We want out program to print this message! + std.debug.print("Foo is 1!\n", .{}); + } else { + std.debug.print("Foo is not 1!\n", .{}); + } +} diff --git a/10_if2.zig b/10_if2.zig new file mode 100644 index 0000000..5e78d54 --- /dev/null +++ b/10_if2.zig @@ -0,0 +1,20 @@ +// +// If statements are also valid expressions: +// +// foo = if (a) 2 else 3; +// +// Note: you'll need to declare a variable type when assigning a value +// from a statement like this because the compiler isn't smart enough +// to infer the type for you. +// +const std = @import("std"); + +pub fn main() void { + var discount = true; + + // If discount is true, the price should be $17, otherwise $20: + var price = if ???; + + std.debug.print("With the discount, the price is ${}.\n", .{price}); +} + diff --git a/README.md b/README.md index 07fe634..f43a95a 100644 --- a/README.md +++ b/README.md @@ -62,7 +62,7 @@ Planned exercises: * [x] Assignment * [x] Arrays * [x] Strings -* [ ] If +* [x] If * [ ] While * [ ] For * [ ] Functions diff --git a/ziglings b/ziglings index 7825cf6..2e180f0 100755 --- a/ziglings +++ b/ziglings @@ -73,6 +73,8 @@ check_it 05_arrays2.zig "LEET: 1337, Bits: 100110011001" "Fill in the two arrays check_it 06_strings.zig "d=d ha ha ha Major Tom" "Each '???' needs something filled in." check_it 07_strings2.zig "Ziggy" "Please fix the lyrics!" check_it 08_quiz.zig "Program in Zig" "See if you can fix the program!" +check_it 09_if.zig "Foo is 1!" +check_it 10_if2.zig "price is \$17" echo echo " __ __ _ " -- cgit v1.2.3-ZIG