ziglings/16_for2.zig
Dave Gauer adf5ddb27d Consistent instructions and examples
I started off with "hints" that required the poor student to piece
together the information from incomplete bits. A complete example is
like a picture that is worth 1000 words and far clearer.
2021-02-07 11:06:51 -05:00

33 lines
1 KiB
Zig

//
// 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
//
// }
//
// You can name "item" and "index" anything you want. "i" is a popular
// shortening of "index". The item name is often the singular form of
// the items you're looping through.
//
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, ???| {
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});
}