사용자 정의 함수, 중첩 루프

매일 공부(ML)·2022년 2월 4일
0

CS50

목록 보기
8/37

학습 목표

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


핵심 단어

사용자 정의 함수

중첩 루프


사용자 정의 함수

여러 번 반복해서 사용하게 되는 코드를 이 함수를 이용하면 쉽고 간편하게 불러올 수 있기에 효율적이고 간단한 코드가 작성이 가능합니다.

*예시1(단순 반복|)

#include <stdio.h>

int main(void)
{
    printf("cough\n");
    printf("cough\n");
    printf("cough\n");
}

*예시2(for문 루프 이용)

#include <stdio.h>

int main(void)
{
    for (int i = 0; i < 3; i++)
    {
        printf("cough\n")
    }
}

*예시3(함수이용)

#include<stdio.h>

void cough(void)
{
    printf("cough\n")
}

int main(void)
{
    for(int i = 0; i<3; i++)
    {
        cough0;
    }
}

void를 입력하고 원하는 함수명(cough)을 적은 뒤 괄호 안에 void를 적어줍니다.

그리고 printf로 cough를 출력하는 코드를 작성하는데 이때 'get_int', 'get_string' 등의 함수는 우리가 직접 구현할 필요가 없습니다.

이제, int main(void)의 안에 cough(함수명)을 사용하면 cough가 그대로 출력은 됩니다.

그러나, 여러 개의 함수를 만들 수록 main은 내려가기 때문에 오류가 발생할 수 있습니다.


*해결책

#include <stdio.h>

void cough(void);

int main(void)
{
    for (int i = 0; i < 3; i++)
    {
        cough();
    }
}

void cough(void)
{
    printf("cough\n");
}
 
##원하는 횟수만큼 출력

#include <stdio.h>

void cough(int n);

int main(void)
{
    cough(3);
}

void cough(int n)
{
    for (int i = 0; i < n; i++)
    {
        printf("cough\n");
    }
}

중첩루프

*do-while

#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");
    }
}

먼저 int n; 으로 정수 값을 갖는 변수 n을 정의합니다.

그리고 do{ …}while()을 이용해서 while( )의 조건이 만족할때 까지 get_int 함수로 사용자가 입력값을 받아 n에 저장합니다. do{ }while()을 사용하면 조건과 상관없이 최소한 한 번은 { }안의 내용을 실행할 수 있습니다.

그리고 for 루프를 두 번 중첩해서 돌면서 “#”을 출력합니다. 첫 번째 루프에서는 변수 i를 기준으로 n번 반복하고, 그 안의 내부 루프에서는 변수 j를 기준으로 n번 반복합니다. 내부 루프에서는 “#”을 출력하고, 내부 루프가 끝날 때마다 줄바꿈을 수행합니다. 따라서 최종적으로는 가로가 n개, 세로가 n개인 “#”이 출력되게 됩니다.

profile
성장을 도울 아카이빙 블로그

0개의 댓글