12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- //
- // Let's see if we can make use of some of things we've learned so far.
- // We'll create two functions: one that contains a "for" loop and one
- // that contains a "while" loop.
- //
- // Both of these are simply labeled "loop" below.
- //
- const std = @import("std");
- pub fn main() void {
- const my_numbers = [4]u16{ 5, 6, 7, 8 };
- printPowersOfTwo(my_numbers);
- std.debug.print("\n", .{});
- }
- // You won't see this every day: a function that takes an array with
- // exactly four u16 numbers. This is not how you would normally pass
- // an array to a function. We'll learn about slices and pointers in
- // a little while. For now, we're using what we know.
- //
- // This function prints, but does not return anything.
- //
- fn printPowersOfTwo(numbers: [4]u16) ??? {
- loop (numbers) |n| {
- std.debug.print("{} ", .{twoToThe(n)});
- }
- }
- // This function bears a striking resemblance to twoToThe() in the last
- // exercise. But don't be fooled! This one does the math without the aid
- // of the standard library!
- //
- fn twoToThe(number: u16) ??? {
- var n: u16 = 0;
- var total: u16 = 1;
- loop (n < number) : (n += 1) {
- total *= 2;
- }
- return ???;
- }
|