본문 바로가기
Computer Language/C Language

C언어 반복문 정리 (while, do while, for 구문 정리 및 실습)

by 방구석 임베디드 2022. 7. 1.
반응형

안녕하세요.

오늘은 반복문에 대해서 알아 보는 시간을 가지도록 하겠습니다.

우선 반복문이란 무엇을 의미하는 것일까요?

 

1. 반복문이란 무엇일까?

반복문은 어떠한 코드를 반복적으로 실행하기 위해서 구성하는 문장을 의미합니다.

반복문의 종류로는

while, do-while, for 구문이 있습니다.

모두 숙지하고, 때에 따라서 사용을 해야합니다.

 

한번 아래 그림을 살펴 보도록 하겠습니다, 

 

2. while 구문이란 무엇일까?

아래 코드가 보입니다.

아래는 while 반복문을 사용하고 있습니다.

먼저, while 중괄호 안에 반복을 원하는 구문을 넣습니다.

그리고, while 구문이 참이 될때까지 반복을 수행합니다.

num이 5가 되는 순간 빠져나오겠네요.

만일 반복의 대상이 코드 한줄이면 줄괄호 생략이 가능합니다.

 

 

그리고 while구문 중괄호 안에는 들여쓰기를 해야합니다.

 

그렇다면 while 구문이 정확하게 어떻게 움직이는지 살펴 보도록 하겠습니다.

제일먼저 

1) while 구문이 참인지를 판단합니다.

num이 0이니까 0<3 이네요.

참입니다.

글면 중괄호 부분을 수행합니다.

2) 중괄호 부분을 다시 수행하고 while 구문 참거짓 판단 문으로 다시 올라왔습니다.

num이 1이 되었네요. 1<3 이니까 참입니다.

다시 중괄호 부분을 수행합니다.

 

3) 2<3이니 다시 참입니다.

다시 중괄호 부분을 수행합니다.

 

4) 3<3 이건 거짓이네요.

중괄호 부분을 수행하지 않고 빠져 나옵니다.

그러면 아래 구구단 출력에 대해서 확인해 보도록 하겠습니다.

구구단은 반복문을 이용하는 대표적인 예제라고 할 수 있습니다.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
	int dan = 0, num = 1;
	printf("몇 단? ");
	scanf("%d", &dan);
		
	while (num < 10)
	{
		printf("%dx%d=%d\n", dan, num, dan * num);
		num++;
	}

	return 0;
}

내용을 확인하면 아래와 같습니다.

만일 무한루프를 구성하고 싶으면 어떻게 할까요?

아래와 같이 while 구문안에 1을 넣으시면 됩니다.

그런데 이러한 구문을 정말 사용할까요?

임베디드 SW에서 자주 사용합니다.

보통 스케쥴러를 돌릴때 사용합니다.

 

그렇다면 while 구문 안에 또 while 구문이 들어 있으면 어떻게 동작을 할까요?

먼저 작은 while 구문이 먼저 동작하고 다시 큰  while문이 동작합니다.

아래는 2단부터 9단까지 반복하는 while 구문입니다.

한번 생각해 보세요.

3. do~while 구문이란 무엇일까?

아래에 while 구문과 do while구문이 들어가 있습니다.

do while구문은 조건을 먼저 보지않고, 한번 먼저 시키는 구문입니다.

그리고 조건은 아래에서 판단하고 참이면 다시위로

거짓이면 밑으로 그대로 내려갑니다.

 

따라서 아래 코드는 모두 동일하게 10번을 반복하는 코드입니다.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
	int num = 3;
	do
	{
		printf("HaHa\n");
		num--;
	} while (num != 0);

	return 0;
}

그러면 아래와 같이 HaHa가 3번 나오게 됩니다.

반복문을 자세히 살펴 보면 아래와 같이 3요소가 있다는 것을 알 수 있습니다.

우선 반복을 위한 변수가 필요합니다.

그리고 반복을 멈추기 위한 조건검사가 필요합니다.

그리고 안에서 변수를 증가시켜 검사조건을 빠져나오기 위한 증감연산이 필요합니다.

while, do while, for 구문 모두 아래 3조건을 가지고 있는 것을 확인 할 수 있습니다.

마지막으로 가장 강력하게 사용하고 자주 사용하는 for구문에 대해서 정리해 보도록 하겠습니다.

for 구문을 분석할떄 위의 3요소를 기반으로 분석해 보도록 하겠습니다.

 

 

4. for 구문이란 무엇일까?

for 구문은 초기식, 조건식, 증감식으로 구성이 되어져 있습니다.

while 구문과 비슷하네요.

결국 num을 비교하고 증가시키고 비교하고 이러한 동작을 하고 있는 것을 확인 할 수 있습니다.

제일 중요한건 for 구문의 순차적 흐름을 이해하는 것입니다.

아래와 같이 처음에는

1-> 2->3->4로 동작을 합니다.

그리고 그후에는 2->3->4를 반복합니다.

만일 2번에서 조건식에서 거짓이 발생하게 된다면

3,4를 수행하지 않고 바로 빠져 나옵니다.

 

그렇다면 한번 예제를 풀어 보도록 하겠습니다.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
	int total = 0;
	int i, num;
	printf("0부터 num까지의 덧셈, num은? ");
	scanf("%d", &num);

	for (i = 0; i < num + 1; i++)
	{
		total += i;
	}

	printf("0부터 %d까지 덧셈결과 : %d \n", num, total);

	return 0;
}

저는 5를 입력하였습니다.

0 + 1 + 2 + 3 + 4+ 5 = 15라는 값이 나오게 됩니다.

이상으로 C언어 반복문 정리 (while, do while, for 구문 정리 및 실습) 를 마치도록 하겠습니다.

반응형

댓글