zig의 Switch에 대해 다룹니다.
다음 사이트에 있는 Zig 강좌를 따라해보며 포스트를 올려보고 있습니다.
2024. 4. 20 최초작성
다음 포스트를 참고하여 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/switch
스위치를 사용하여 코드를 실행하는 예제입니다.
const std = @import("std"); fn testFn(x: i32) void { std.debug.print("{} -> ", .{x}); switch (x) { // 범위로 조건을 지정합니다. -1...1 => { std.debug.print("-1에서 1 사이의 숫자입니다.\n", .{}); }, // 값으로 조건을 지정합니다. 10, 100 => { std.debug.print("10과 100 중 하나입니다.\n", .{}); }, 5 => { std.debug.print("5입니다.\n", .{}); }, // 나머지 경우를 지정합니다. else => { std.debug.print("나머지 경우입니다.\n", .{}); }, } } pub fn main() void { testFn(-1); testFn(0); testFn(1); testFn(10); testFn(100); testFn(5); testFn(500); testFn(5.0); // 5로 타입이 변경됩니다. } |
실행결과입니다.
% zig run main.zig
-1 -> -1에서 1 사이의 숫자입니다.
0 -> -1에서 1 사이의 숫자입니다.
1 -> -1에서 1 사이의 숫자입니다.
10 -> 10과 100 중 하나입니다.
100 -> 10과 100 중 하나입니다.
5 -> 5입니다.
500 -> 나머지 경우입니다.
5 -> 5입니다.
switch를 사용하여 값을 변경하는 간단한 예제입니다.
const std = @import("std"); fn testFn(x: i32) i32 { // 함수의 파리미터는 상수이므로 변수에 담아야 값을 변경할 수 있습니다. var y = x; std.debug.print("{} -> ", .{y}); // 스위치 결과를 변수 y에 저장합니다. y = switch (y) { // 범위로 조건을 지정합니다. -100...-1 => -y, // 값으로 조건을 지정합니다. 5, 10, 15 => @divExact(y, 5), // x / 5 대신 사용해야 합니다. 2, 4, 8 => y * 10, // 나머지 경우를 지정합니다. else => y, }; return y; } pub fn main() void { std.debug.print("{}\n", .{testFn(-100)}); std.debug.print("{}\n", .{testFn(10)}); std.debug.print("{}\n", .{testFn(8)}); std.debug.print("{}\n", .{testFn(7)}); } |
실행결과입니다.
% zig run main.zig
-100 -> 100
10 -> 2
8 -> 80
7 -> 7
'Zig > Zig 강좌' 카테고리의 다른 글
zig 강좌 07 - Defer (0) | 2024.04.13 |
---|---|
zig 강좌 06 -함수 (0) | 2024.04.10 |
zig 강좌 05 - for 문 (0) | 2024.04.06 |
zig 강좌 04 - while 문 (0) | 2024.04.04 |
zig 강좌 03 - if 문 (0) | 2024.04.02 |
시간날때마다 틈틈이 이것저것 해보며 블로그에 글을 남깁니다.
블로그의 문서는 종종 최신 버전으로 업데이트됩니다.
여유 시간이 날때 진행하는 거라 언제 진행될지는 알 수 없습니다.
영화,책, 생각등을 올리는 블로그도 운영하고 있습니다.
https://freewriting2024.tistory.com
제가 쓴 책도 한번 검토해보세요 ^^
그렇게 천천히 걸으면서도 그렇게 빨리 앞으로 나갈 수 있다는 건.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!