ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [C언어] 사용자 정의 함수, 중첩 루프
    Stage/Computer Science 2021. 5. 27. 09:02

    학습목표

    사용자 정의 함수와 중첩 루프를 작성할 수 있다.

     

    1. 사용자 정의 함수

    #include <cs50.h>
    #include <stdio.h>
    
    int get_positive_int(void);
    
    int main(void)
    {
        int i = get_positive_int();
        printf("%i\n", i);
    }
    
    int get_positive_int(void)
    {
        int n;
        do
        {
            n = get_int("Positive Integer: ");
        }
        while (n < 1);
        return n;
    }
    • get_positive_int()라는 함수를 호출하고 있는데, 이는 CS50 라이브러리에는 없는 함수이다.
      위 코드에서 정의해놓은 get_positive_int() 함수를 살펴보자.
      • int get_positive_int(void) 여기서 (void)는 입력을 아무것도 받지 않는다는 의미이다. 가장 앞에 있는 int는 출력을 int로 하겠다는 의미이다.
        출력 또한 하지 않길 원한다면 int -> void라고 적어주면 된다.
    • do-while 루프를 사용하고 있는데, while 루프와 비교했을 때 어떤 차이가 있는지 살펴보자.
      • while을 단독으로 사용하면 while의 조건이 참이어야만 코드를 수행한다.
      • 반면에 do-while은 do를 무조건 한 번은 수행한다.

     

    2. 중첩 루프

    슈퍼 마리오 게임에서 마리오가 공중에 떠 있는 벽돌에 점프해서 아이템을 먹는 모습을 떠올려보자.
    벽돌을 연속해서 가로로 출력하고 싶다면 어떻게 해야할까?

    #include <cs50.h>
    #include <stdio.h>
    
    int main(void)
    {
        int n;
    
        do
        {
            n = get_int("Size: ");
        }
        while (n < 1);
    
        for (int i = 0; i < n; i++)
        {
            for (int j = 0; j < n; j++)
            {
                printf("#");
            }
            printf("\n");
        }
    }
    • do를 만나서 사용자에게 n 값을 받는다.(n = 4 라고 가정)
    • for 루프를 만난다.
      • 첫 번째 for 루프에서 i가 0일 때, 두 번째 루프를 만나면 '#'이 4번 출력된다. (####)
      • 두 번째 루프를 빠져나와서 줄바꿈을 한다.
      • 이를 4번 반복하게 되면 가로 4 * 세로 4개의 '#'이 출력된다.
        ####
        ####
        ####
        ####

     

    'Stage > Computer Science' 카테고리의 다른 글

    [배열] 컴파일링  (0) 2021.05.27
    [C언어] 하드웨어의 한계  (0) 2021.05.27
    [C언어] 자료형, 형식 지정자, 연산자  (0) 2021.05.27
    [C언어] 조건문과 루프  (0) 2021.05.26
    [C언어] 문자열  (0) 2021.05.26

    댓글