Skip to content

Commit c3c6a70

Browse files
committed
add loop advanced
1 parent 215f7e1 commit c3c6a70

File tree

3 files changed

+40
-0
lines changed

3 files changed

+40
-0
lines changed

loop_advanced/expression.zig

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
const print = @import("std").debug.print;
2+
3+
pub fn main() void {
4+
const target = 5;
5+
const list = [_]u8{ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
6+
var index: u8 = 0;
7+
8+
// Loop as expression
9+
const value = while (index < list.len) : (index += 1) {
10+
if (list[index] == target) {
11+
break true;
12+
}
13+
} else false; // 如果到最後都沒有執行到 break 則會回傳 else 的值
14+
15+
print("{}", .{value});
16+
}

loop_advanced/inline.zig

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
const print = @import("std").debug.print;
2+
3+
pub fn main() void {
4+
const max = 10;
5+
comptime var i = 0;
6+
7+
var sum: u16 = 0;
8+
inline while (i <= max) : (i += 1) {
9+
sum += i;
10+
}
11+
12+
print("{}", .{sum});
13+
}

loop_advanced/readme.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# Loops Advanced
2+
3+
```bash
4+
$ zig run expression.zig
5+
true
6+
```
7+
8+
```bash
9+
$ zig run inline.zig
10+
55
11+
```

0 commit comments

Comments
 (0)