typestar

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

  1. while (lap <= 8) : (lap += 2) corre el paso al final de cada pasada.
  2. break n saca un valor del bucle y lo convierte en expresión.
  3. El brazo else 0 cubre el caso en que el bucle termina sin romper.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 2 de 3 en Control de flujo; paso 5 de 27 en Fundamentos del lenguaje.

← Anterior Siguiente →