aboutsummaryrefslogtreecommitdiff
path: root/exercises/12_while2.zig
diff options
context:
space:
mode:
authorDave Gauer <dave@ratfactor.com>2021-02-09 18:36:57 -0500
committerDave Gauer <dave@ratfactor.com>2021-02-09 18:36:57 -0500
commit55ad7c32f2d534b1fbd438204d21738f958c51a5 (patch)
tree16be4b53193105a759b3eec25be5e664d41c428d /exercises/12_while2.zig
parentcf0920de31e9b5f3c5ba6de19a1b4c8d0c58b907 (diff)
downloadziglings-55ad7c32f2d534b1fbd438204d21738f958c51a5.tar.gz
ziglings-55ad7c32f2d534b1fbd438204d21738f958c51a5.tar.bz2
ziglings-55ad7c32f2d534b1fbd438204d21738f958c51a5.tar.xz
ziglings-55ad7c32f2d534b1fbd438204d21738f958c51a5.zip
Moved exercises to exercises because exercises
Diffstat (limited to 'exercises/12_while2.zig')
-rw-r--r--exercises/12_while2.zig35
1 files changed, 35 insertions, 0 deletions
diff --git a/exercises/12_while2.zig b/exercises/12_while2.zig
new file mode 100644
index 0000000..6f808c8
--- /dev/null
+++ b/exercises/12_while2.zig
@@ -0,0 +1,35 @@
+//
+// Zig 'while' statements can have an optional 'continue expression'
+// which runs every time the while loop continues (either at the
+// end of the loop or when an explicit 'continue' is invoked (we'll
+// try those out next):
+//
+// while (condition) : (continue expression)
+// ...
+// }
+//
+// Example:
+//
+// var foo = 2;
+// while (foo<10) : (foo+=2)
+// // Do something with even numbers less than 10...
+// }
+//
+// See if you can re-write the last exercise using a continue
+// expression:
+//
+const std = @import("std");
+
+pub fn main() void {
+ var n: u32 = 2;
+
+ // Please set the continue expression so that we get the desired
+ // results in the print statement below.
+ while (n < 1000) : ??? {
+ // Print the current number
+ std.debug.print("{} ", .{n});
+ }
+
+ // As in the last exercise, we want this to result in "n=1024"
+ std.debug.print("n={}\n", .{n});
+}