Added ex 15,16 for loops

This commit is contained in:
Dave Gauer 2021-01-18 19:21:18 -05:00
parent 483fb97dfc
commit 2bda44bc58
4 changed files with 55 additions and 1 deletions

24
15_for.zig Normal file
View File

@ -0,0 +1,24 @@
//
// Behold the 'for' loop! It lets you execute code for each
// member of an array (and things called 'slices' which we'll
// get to in a bit).
//
// for (items) |item| {
// // Do something with item
// }
//
const std = @import("std");
pub fn main() void {
const story = [_]u8{ 'h', 'h', 's', 'n', 'h' };
std.debug.print("A Dramatic Story: ", .{});
for (???) |???| {
if(scene == 'h') std.debug.print(":-) ", .{});
if(scene == 's') std.debug.print(":-( ", .{});
if(scene == 'n') std.debug.print(":-| ", .{});
}
std.debug.print("The End.\n", .{});
}

27
16_for2.zig Normal file
View File

@ -0,0 +1,27 @@
//
// For loops also let you store the "index" of the iteration - a
// number starting with 0 that counts up with each iteration:
//
// for (items) |item, index| {
// // Do something with item and index
// }
//
const std = @import("std");
pub fn main() void {
// Let's store the bits of binary number 1101 in
// 'little-endian' order (least significant byte first):
const bits = [_]u8{ 1, 0, 1, 1 };
var value: u32 = 0;
// Now we'll convert the binary bits to a number value by adding
// the value of the place as a power of two for each bit. See if
// you can figure out the missing piece:
//
for (bits) |bit, i| {
var place_value = std.math.pow(u32, 2, @intCast(u32, i));
value += place_value * bit;
}
std.debug.print("The value of bits '1101': {}.\n", .{value});
}

View File

@ -64,7 +64,7 @@ Planned exercises:
* [x] Strings
* [x] If
* [x] While
* [ ] For
* [x] For
* [ ] Functions
* [ ] Defer
* [ ] Errors

View File

@ -83,6 +83,8 @@ check_it 11_while.zig "n=1024" "You probably want a 'less than' condition."
check_it 12_while2.zig "n=1024" "It might help to look back at the previous exercise."
check_it 13_while3.zig "1 2 4 7 8 11 13 14 16 17 19"
check_it 14_while4.zig "n=4"
check_it 15_for.zig "A Dramatic Story: :-) :-) :-( :-| :-) The End."
check_it 16_for2.zig "13"
echo
echo " __ __ _ "
@ -93,4 +95,5 @@ echo " |_|\__,_|\__, (_) "
echo " |___/ "
echo
echo "You've completed all of the Ziglings exercises!"
echo " (That have been written so far.)"
echo