반응형

다음 사이트에 있는 Zig 강좌를 따라해보며 포스트를 올려보고 있습니다.

https://zig.guide/



2024. 4. 6  최초작성




다음 포스트를 참고하여 zig 개발 환경을 구성하세요.

 

zig 설치하여 Visual Studio Code 개발환경 만들기 - Windows, Linux, macOS

https://webnautes.tistory.com/2301 



zig 강좌를 진행하고 있습니다.

 

zig 강좌 01 - Assignment(대입)

https://webnautes.tistory.com/2304

 

 

zig 강좌 02 - Arrays(배열)

https://webnautes.tistory.com/2305



zig 강좌 03 - if 문

https://webnautes.tistory.com/2306 



zig 강좌 04 - while 문

https://webnautes.tistory.com/2308 

 

zig 강좌 05 - for 문

https://webnautes.tistory.com/2309 


zig 강좌 06 -함수

https://webnautes.tistory.com/2313 


zig 강좌 07 - Defer

https://webnautes.tistory.com/2317




zig 강좌 08 - Switch

https://webnautes.tistory.com/2324




 

이번엔 다음 링크에 있는 내용을 정리해봤습니다.  

https://zig.guide/language-basics/for-loops 

 



for문을 사용하여 문자 배열의 값에 접근해봅니다.

 

const std = @import("std");

pub fn main() void {

    // 부호없는 8비트 정수 타입의 배열에 문자를 3개 저장합니다.
    const string = [_]u8{ 'a', 'b', 'c' };

    // for문에서 반복하며 string 배열의 원소(character)와 배열의 인덱스(index)에 접근합니다.
    for (string, 0..) |character, index| {

        // 문자를 출력하려면 print함수에서 {} 대신에 {c}를 사용하면 됩니다.
        std.debug.print("[{}] = {c}\n", .{ index, character });
    }
}



실행 결과입니다.

 

% zig run main.zig

[0] = a

[1] = b

[2] = c




문자열에 대해서도 같은 방식으로 사용가능합니다. 

 

const std = @import("std");

pub fn main() void {
    const str = "abc"; // 순회할 문자열

    for (str, 0..) |character, index| {
        std.debug.print("[{}] = {c}\n", .{ index, character });
    }
}

 

실행 결과입니다.

 

% zig run main.zig

[0] = a

[1] = b

[2] = c





정수 배열에 대한 예제입니다. 앞에서 본 문자 배열 예제와 큰 차이가 없습니다. 

 

const std = @import("std");

pub fn main() void {
    const array = [_]i32{ 1, 2, 3 };

    for (array, 0..) |integer, index| {
        std.debug.print("[{}] = {}\n", .{ index, integer });
    }
}



실행결과입니다.

 

 % zig run main.zig

[0] = 1

[1] = 2

[2] = 3




for 문에서 인덱스는 생략하고 배열의 원소 접근만 사용할 수 도 있습니다.

 

const std = @import("std");

pub fn main() void {
    const array = [_]i32{ 1, 2, 3 };

    for (array) |integer| {
        std.debug.print("{}\n", .{integer});
    }
}



실행 결과입니다.

 

% zig run main.zig

1

2

3



인덱스를 사용하여 배열에 접근하는 방식을 사용하기 위해 또는 배열의 원소 개수만큼만 반복해야 할 경우를 위해서 배열 원소 접근을 위한 변수를 생략하고 _로 대체할 수 있습니다.

 

const std = @import("std");

pub fn main() void {
    const str = "abc"; // 순회할 문자열

    for (str, 0..) |_, index| {
        std.debug.print("{c}\n", .{str[index]});
    }
}



실행결과입니다.

 

% zig run main.zig

a

b

c



문자열에 있는 문자 개수 또는 배열에 있는 원소 개수 만큼 반복합니다. 

 

const std = @import("std");

pub fn main() void {
    const str = "abc"; // 순회할 문자열

    for (str) |_| {
        std.debug.print("hi\n", .{});
    }
}



실행결과입니다.

 

% zig run main.zig

hi

hi

hi




반응형

'Zig > Zig 강좌' 카테고리의 다른 글

zig 강좌 07 - Defer  (0) 2024.04.13
zig 강좌 06 -함수  (0) 2024.04.10
zig 강좌 04 - while 문  (0) 2024.04.04
zig 강좌 03 - if 문  (0) 2024.04.02
zig 강좌 01 - Assignment(대입)  (0) 2024.04.01

문제 발생시 지나치지 마시고 댓글 남겨주시면 가능한 빨리 답장드립니다.

도움이 되셨다면 토스아이디로 후원해주세요.
https://toss.me/momo2024


제가 쓴 책도 한번 검토해보세요 ^^

+ Recent posts