반복문(For문) 활용
지지난 포스팅에서는 반복문에 대해 알아보았다.
이번 포스팅에서는 반복문을 활용해서 예제를 작성해보는 시간을 가져보자.
일단 반복문에서 필요한 것은 조건과 반복방식(패턴)을 알아내는 것이다.
구구단 5단을 출력하는 예제를 작성해보자.
#include <stdio.h>
int main()
{
printf("5*1 = 5\n");
printf("5*2 = 10\n");
printf("5*3 = 15\n");
printf("5*4 = 20\n");
printf("5*5 = 25\n");
printf("5*6 = 30\n");
printf("5*7 = 35\n");
printf("5*8 = 40\n");
printf("5*9 = 45\n");
}
5단을 작성하면 이렇게 할 수 있지만, 1단부터 9단까지 하려면 엄청난 코드가 생길것이고, 용량도 많아질것이고, 프로그래머가 계산한것이기때문에 컴퓨터가 하는 일은 하나도 없기때문에 비효율적인 프로그램이 될 것이다.
for문을 활용해서 5단을 작성해보자.
일단 처음에는 9번을 반복해야하므로 for문으로 9번 나오는 코드를 작성해보자.
#include <stdio.h>
int main()
{
int iCount;
for (iCount = 1; iCount < 10; ++iCount)
{
printf("5 * 1 = 5\n");
}
}
5*1 = 5 를 9번 반복해주는 구문을 작성하였다. 하지만 1곱해주고, 2곱해주고, 3곱해주고 ... 를 하는것이 목적인데 지금 for문안의 구문은 상수밖에 없기때문에 값이 변하지 않는다.
이제 상수를 변수로 수정해서 구구단 예제를 작성해보자.
#include <stdio.h>
int main()
{
int iCount;
for (iCount = 1; iCount < 10; ++iCount)
{
printf("5 * %d = %d\n", iCount, iCount*5);
}
}
똑같은 5단의 결과가 출력되었다. 맨 처음에 printf로만 작성했던 코드와 비교해보자.
만약 4단을 만들고 싶다고하면 어떻게 될까? 왼쪽의 예제는 4단 만큼의 printf 9줄을 작성해야할 것이고, 오른쪽 예제는 for문 구문 5줄만 작성하면 끝날 것이다.
하지만 for문 안의 5를 변수로 바꾸면 입력한 값에따라 구구단이 출력되는 프로그램이 완성된다.
#include <stdio.h>
int main()
{
int iCount;
int iDan;
for (iCount = 1, iDan = 3; iCount < 10; ++iCount)
{
printf("%d * %d = %d\n", iDan, iCount, iDan * iCount );
}
}
iDan이라는 변수를 선언해서 출력하는 구문을 변수화시켜줘서 iDan에 따른 구구단 'iDan'단 이 출력된다. 위의 예제는 iDan이 3일때 3단을 출력하는 프로그램이다.
이제 scanf를 사용해서 숫자를 입력하면 그 숫자의 구구단을 출력하는 구문을 작성해보자.
#include <stdio.h>
#pragma warning(disable: 4996)
int main()
{
int iCount;
int iDan;
printf("출력하고자하는 구구단은 몇 단인가요? : ");
scanf("%d", &iDan);
for (iCount = 1; iCount < 10; ++iCount)
{
printf("%d * %d = %d\n", iDan, iCount, iDan * iCount);
}
}
1단부터 9단까지 한꺼번에 구구단을 출력해보자.
지금은 9번 반복하는 것만 작성했는데, 그 9번을 다시 반복하는 반복문을 작성하면된다. for문을 한번 더 사용하면 1단부터 9단까지 전부 출력 할 수 있다.
#include <stdio.h>
int main()
{
int iCount;
int iDan;
for(iDan = 1; iDan < 10; ++iDan)
{
for (iCount = 1; iCount < 10; ++iCount)
{
printf("%d * %d = %d\n", iDan, iCount, iDan * iCount);
}
printf("\n");
}
}
만약에 짝수단만 출력하고 싶으면 어떻게 해야될까?
이때 조건문이 들어가는 것이다.
iDan이 짝수일때의 조건문(iDan % 2 == 0)을 사용해서 짝수단만 출력할 수 있다.
#include <stdio.h>
int main()
{
int iCount;
int iDan;
for(iDan = 1; iDan < 10; ++iDan)
{
if((iDan % 2) == 0)
{
for (iCount = 1; iCount < 10; ++iCount)
{
printf("%d * %d = %d\n", iDan, iCount, iDan * iCount);
}
}
printf("\n");
}
}
'개발자과정준비 > C' 카테고리의 다른 글
[C] 포인터 - 2 (0) | 2020.10.15 |
---|---|
[C] 포인터 - 1 (0) | 2020.10.14 |
[C] Scanf 런타임오류 해결 방법 (0) | 2020.10.10 |
[C] 반복문(while, do-while, for) (0) | 2020.10.08 |
[C] 제어문 (if, else if, switch, goto) (0) | 2020.10.07 |