사용자 정의 함수와 중첩 루프를 작성할 수 있습니다.
사용자 정의 함수
중첩 루프
여러 번 반복해서 사용하게 되는 코드를 이 함수를 이용하면 쉽고 간편하게 불러올 수 있기에 효율적이고 간단한 코드가 작성이 가능합니다.
*예시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개인 “#”이 출력되게 됩니다.