aboutsummaryrefslogtreecommitdiff
path: root/14_while4.zig
diff options
context:
space:
mode:
authorDave Gauer <dave@ratfactor.com>2021-01-10 11:46:42 -0500
committerDave Gauer <dave@ratfactor.com>2021-01-10 11:46:42 -0500
commit483fb97dfccca833457f55798149b68942be6deb (patch)
tree92f7c2308669bbe1b41250858d463b556961d502 /14_while4.zig
parent0bb89e3e41cef893c158326a209aec129382c275 (diff)
downloadziglings-483fb97dfccca833457f55798149b68942be6deb.tar.gz
ziglings-483fb97dfccca833457f55798149b68942be6deb.tar.bz2
ziglings-483fb97dfccca833457f55798149b68942be6deb.tar.xz
ziglings-483fb97dfccca833457f55798149b68942be6deb.zip
Added Ex 11-14: while loops
Diffstat (limited to '14_while4.zig')
-rw-r--r--14_while4.zig24
1 files changed, 24 insertions, 0 deletions
diff --git a/14_while4.zig b/14_while4.zig
new file mode 100644
index 0000000..e686f88
--- /dev/null
+++ b/14_while4.zig
@@ -0,0 +1,24 @@
+//
+// Continue expressions do NOT execute when a while loop stops
+// because of a 'break' statement.
+//
+// Example:
+//
+// while (condition) : (continue expression){
+// if(other condition) break;
+// ...
+// }
+//
+const std = @import("std");
+
+pub fn main() void {
+ var n: u32 = 1;
+
+ // Oh dear! This while loop will go forever!?
+ while (true) : (n+=1) {
+ if(???) ???;
+ }
+
+ // Result: we want n=4
+ std.debug.print("n={}\n", .{n});
+}