Bucles while en Zig
El while con expresión de continuación, y uno que rompe con un valor.
const std = @import("std");
pub fn main() void {
// The continue expression after : runs at the end of each pass.
var lap: u32 = 2;
while (lap <= 8) : (lap += 2) {
std.debug.print("sled dog lap {d}\n", .{lap});
}
// break with a value turns the whole loop into an expression.
var n: u32 = 1;
const first_cube = while (n < 100) : (n += 1) {
if (n * n * n > 300) break n;
} else 0;
std.debug.print("first cube past 300: {d}\n", .{first_cube});
}
Cómo funciona
while (lap <= 8) : (lap += 2)corre el paso al final de cada pasada.break nsaca un valor del bucle y lo convierte en expresión.- El brazo
else 0cubre el caso en que el bucle termina sin romper.
Palabras clave y builtins usados aquí
breakconstelsefnifpubu32varvoidwhile
El intento, en números
- Líneas
- 16
- Caracteres a escribir
- 445
- Tokens
- 118
- Ritmo de tres estrellas
- 70 tpm
Al ritmo de tres estrellas de 70 tokens por minuto, este intento toma unos 101 segundos.
Paso 2 de 3 en Control de flujo; paso 5 de 27 en Fundamentos del lenguaje.