반응형

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

https://zig.guide/



2024. 4. 4  최초작성




다음 포스트를 참고하여 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/while-loops




구구단 3단을 출력하는 while 문 예제입니다.

 

const std = @import("std");

pub fn main() void {

    // 값을 변경하지 않기때문에 부호없는 8비트 정수로 상수를 선언합니다.
    const number: u8 = 3;

    // 값을 변경해야 하기 때문에 부호없는 8비트 정수로 변수를 선언합니다.
    var i: u8 = 1;



    // i가 10보다 작을 동안 반복합니다.
    while (i < 10) {

        // 계산 결과를 출력합니다.
        std.debug.print("{} * {} = {}\n", .{ number, i, number * i });

        i += 1; // i = i + 1의 줄임 표현입니다.
    }
}




실행결과 입니다.

 

% zig run main.zig

3 * 1 = 3

3 * 2 = 6

3 * 3 = 9

3 * 4 = 12

3 * 5 = 15

3 * 6 = 18

3 * 7 = 21

3 * 8 = 24

3 * 9 = 27




while 문에 반복시 특정 변수의 값을 변경하도록 할 수 있습니다.  여기에서는 반복할때마다 1씩 증가합니다.

 

const std = @import("std");

pub fn main() void {
    const number: u32 = 3;
    var i: u8 = 1;

    // i가 10보다 작을 동안 반복합니다. i를 증가시키는 코드를 while문에 추가할 수 있습니다. i+=1로 바꾸어 적어도 됩니다.
    while (i < 10) : (i = i + 1) {
        std.debug.print("{} * {} = {}\n", .{ number, i, number * i });
    }
}



실행결과는 앞에서 본 예제와 동일합니다.

 

% zig run main.zig

3 * 1 = 3

3 * 2 = 6

3 * 3 = 9

3 * 4 = 12

3 * 5 = 15

3 * 6 = 18

3 * 7 = 21

3 * 8 = 24

3 * 9 = 27




이하에 있는 코드를 실행하지 않고  다시 while 문 처음부터 실행하도록하는 continue 문 예제입니다. 

 

const std = @import("std");

pub fn main() void {
    const number: u32 = 3;
    var i: u8 = 1;

    // i가 10보다 작을 동안 반복합니다. i를 증가시키는 코드를 while문에 추가할 수 있습니다. i+=1로 바꾸어 적어도 됩니다.
    while (i < 10) : (i = i + 1) {

        // 2의 배수인 경우엔 print 문을 실행하지 않고 다시 while문 처음으로 돌아가도록 합니다.
        if (i % 2 == 0) continue;

        std.debug.print("{} * {} = {}\n", .{ number, i, number * i });
    }
}



실행결과 구구단 3단에서 2의 배수를 곱하는 건 제외하고 출력됩니다.

 

% zig run main.zig

3 * 1 = 3

3 * 3 = 9

3 * 5 = 15

3 * 7 = 21

3 * 9 = 27




조건이 맞으면 while 문을 중지하도록 하는 break 문 예제입니다.

 

const std = @import("std");

pub fn main() void {
    const number: u32 = 3;
    var i: u8 = 1;

    // i가 10보다 작을 동안 반복합니다. i를 증가시키는 코드를 while문에 추가할 수 있습니다. i+=1로 바꾸어 적어도 됩니다.
    while (i < 10) : (i = i + 1) {

        // 변수 i의 값이 5이면 while문을 중지합니다.
        if (i == 5) break;

        std.debug.print("{} * {} = {}\n", .{ number, i, number * i });
    }
}



실행하면 변수 i의 값이 4일때까지만 실행 결과가 출력됩니다.

 

% zig run main.zig

3 * 1 = 3

3 * 2 = 6

3 * 3 = 9

3 * 4 = 12




반응형

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

zig 강좌 06 -함수  (0) 2024.04.10
zig 강좌 05 - for 문  (0) 2024.04.06
zig 강좌 03 - if 문  (0) 2024.04.02
zig 강좌 01 - Assignment(대입)  (0) 2024.04.01
zig 강좌 02 - Arrays(배열)  (0) 2024.03.30

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

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


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

+ Recent posts