다음 사이트에 있는 Zig 강좌를 따라해보며 포스트를 올려보고 있습니다.
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://freewriting2024.tistory.com
제가 쓴 책도 한번 검토해보세요 ^^
그렇게 천천히 걸으면서도 그렇게 빨리 앞으로 나갈 수 있다는 건.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!