gokayburuc.dev

Zig'de `for` Döngüsü (For Loop)

Zig dilinde for döngüsü, diziler veya slice'lar üzerinde yineleme (iteration) yapmak için güçlü ve sade bir yapıdır. Bu makalede Zig'de for döngüsünün sözdizimi, temel kullanımı, indeksli versiyonu ve örnekleri yer alır.


for Döngüsü Sözdizimi (Syntax)

Zig'de for döngüsü aşağıdaki genel yapıyla kullanılır:

for (koleksiyon) |öğe| {
    // işlem yapılacak kod
}

Veya indeksli kullanım:

for (koleksiyon, 0..) |öğe, indeks| {
    // işlem yapılacak kod
}

Basit for Döngüsü Kullanımı

Aşağıdaki örnekte, bir karakter dizisi üzerinden geçerek her karaktere karşılık gelen yüz ifadesi basılır:

const std = @import("std");

pub fn main() void {
    const story = [_]u8{ 'h', 'h', 's', 'n', 'h' };

    std.debug.print("A Dramatic Story: ", .{});

    for (story) |scene| {
        if (scene == 'h') std.debug.print(":-)  ", .{});
        if (scene == 's') std.debug.print(":-(  ", .{});
        if (scene == 'n') std.debug.print(":-|  ", .{});
    }

    std.debug.print("The End.\n", .{});
}

Açıklama:

Çıktı:

A Dramatic Story: :-)  :-)  :-(  :-|  :-)  The End.

İndeksli for Döngüsü Kullanımı

İndeksli for döngüsü, elemanla birlikte dizideki konumunu da elde etmenizi sağlar. Özellikle hesaplamalı işlemler veya dönüştürmelerde kullanışlıdır.

const std = @import("std");

pub fn main() void {
    const bits = [_]u8{ 1, 0, 1, 1 };
    var value: u32 = 0;

    for (bits, 0..) |bit, i| {
        const i_u32: u32 = @intCast(i);
        const place_value = std.math.pow(u32, 2, i_u32);
        value += place_value * bit;
    }

    std.debug.print("The value of bits '1101': {}.\n", .{value});
}

Açıklama:

Çıktı:

The value of bits '1101': 13.

for ile Döngü Kontrolü

Zig'de for döngüsünde aşağıdaki kontroller de yapılabilir:


Sonuç

Zig'deki for döngüsü yapısı; sade, güçlü ve güvenli bir şekilde dizi ve slice üzerinde işlem yapmaya olanak tanır. Hem eleman hem de indeks alınabilmesi sayesinde işlem çeşitliliği artar. Zig’in güçlü tür sistemi ve standart kütüphanesiyle birlikte, for döngüleriyle sistem seviyesinde güvenli ve okunabilir kodlar yazmak mümkündür.

#zig