본문 바로가기

개발/C

[C언어]기초 - 06. 반복문 (while, for, do~while)

※해당 포스팅은 "혼자 공부하는 C언어"책을 기반으로 작성되었습니다.

 

while문, for문, do~while문

01. while문

 : 조건을 먼저 물어보고 만족하는 동안 실행문 실행

    → 반복문 실행 전 조건 검사

º while문을 사용한 반복문 예제 코드

#include <stdio.h>
int main(void)
{
	int a = 10;

	while (a < 20)
	{
		a++;
	}

	printf("a : %d", a);

	return 0;
}

º 실행 결과

a : 20

 

 

02. for문

 : 초깃값을 최초 설정 후 조건을 물어보고 실행문을 실행, 증감식을 실행하고 다시 조건 확인

º 예제 코드

#include <stdio.h>
int main(void)
{
	int a = 3;
	int cnt = 0;		//for문 루프 횟수 체크
	
	for (int i = 0; i < 10; i++)
	{
		a += 3;
		cnt++;
	}
	printf("a : %d, cnt : %d", a, cnt);

	return 0;
}

º 실행 결과

a : 33, cnt : 10

    → 반복할 문장을 실행할 때마다 특정 변수의 값을 하나씩 증가시켜 원하는 횟수가 될 때까지 반복하는 방법을 사용

º 주의점

 - 초기식, 조건식, 증감식은 반복 횟수를 알기 쉽게 작성

 - 반복 횟수를 세는 변수를 반복문 안에서 바꾸지 않는 것이 좋음

 

* for문의 초기식, 조건식, 증감식의 위치를 바꾸면 while문으로 변경 가능

    → 반복 횟수가 정해진 경우엔 for문 사용

 

 

03. do~while문

 : 실행문을 무조건 실행하고 조건을 확인한 후 실행문 실행

    → 반복 문장 실행 후 조건 검사

º 예제 코드

#include <stdio.h>
int main(void)
{
	int a = 1;

	do
	{
		a *= 2;
	} while (a < 10);

	printf("a : %d", a);

	return 0;
}

º 실행 결과

a : 16

º 특징 : 조건식과 관계없이 반복할 문장을 최소 한 번은 실행

 

 

★ key point

반복문 형식 실행 방식
while (조건식)
{
    실행문;
}
조건식이 참인 동안 실행문 반복
최초 조건식이 거짓이면 실행문은 한 번도 실행 X
for (초기식; 조건식; 증감식)
{
    실행문;
}
초기식은 최소 한 번 실행
조건식을 검사해 참이면 실행문→증감식→조건식을 반복
do
{
    실행문;
} while (조건식);
실행문 수행 후 조건 검사
조건식이 참이면 실행문 반복
실행문은 조건식과 관계없이 최소 한 번은 실행

 

 

반복문 활용

01. 중접 반복문

 : 반복문 안에 실행할 문장으로 반복문이 포함된 것

º 예시 : 구구단, 별 찍기

º 별 출력 예제 코드

#include <stdio.h>
int main(void)
{
	for (int i = 0; i < 5; i++)
	{
		for (int j = 0; j < 5; j++)
		{
			printf("*");
		}
		printf("\n");
	}

	return 0;
}

º 실행 결과

*****
*****
*****
*****
*****

º 중첩 반복문 사용 시 각 반복문이 서로 독립적인 제어 변수를 사용해야 각각 원하는 횟수 반복 가능

º 예제 코드 (구구단) - 이중 for문 이용

#include <stdio.h>
int main(void)
{
	for (int i = 2; i < 10; i++)
	{
		for (int j = 0; j < 10; j++)
		{
			printf("%d * %d = %d\n", i, j, i * j);
		}
	}

	return 0;
}

 

02. break와 continue 분기문

º break : 반복문 안에서 반복을 즉시 끝낼 때 사용

 - 예외 적으로 반복문 중간에 끝내고 싶을 때 사용

 - 자신을 포함하는 반복문 하나만 벗어남

 - if문에서는 break 사용 시 if문 블록을 포함한 반복문에서 벗어남

º break로 무한 반복문 빠져나오가

 - 반복문의 조건식이 항상 참이면 무한 반복문 → while(1), for(;;)

 - 조건에 따라 무한 반복문 종료 시 break 사용

 

º continue : 반복문의 일부를 건너뛸 때 사용

 - 반복문 내부에서 continue 사용 시 다음 실행 위치가 반복문의 블록 끝 → 블록을 탈출하는 것은 아님

 - 조건에 따라 반복문의 일부를 제외하고 반복 가능

 - 예시 : 3의 배수를 제외하고 1부터 100까지의 합을 구할 경우