Browse Source

Added Ex 9,10 for If

Dave Gauer 4 years ago
parent
commit
0bb89e3e41
4 changed files with 54 additions and 1 deletions
  1. 31 0
      09_if.zig
  2. 20 0
      10_if2.zig
  3. 1 1
      README.md
  4. 2 0
      ziglings

+ 31 - 0
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", .{});
+    }
+}

+ 20 - 0
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});
+}
+

+ 1 - 1
README.md

@@ -62,7 +62,7 @@ Planned exercises:
 * [x] Assignment
 * [x] Arrays
 * [x] Strings
-* [ ] If
+* [x] If
 * [ ] While
 * [ ] For
 * [ ] Functions

+ 2 - 0
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 "    __   __          _ "