[2-4] 반복문 (for 문 / while 문(do while))

반복문(loop)이란 특정 블록을 반복 수행하는 프로그래밍 문법입니다. C 언어는 for문, while문, do while문을 제공합니다. for문이든 while문이든 원칙은 같습니다. 조건을 만족하는 동안 자신의 블록을 반복 수행합니다!

3.1 for문

for 문은 조건식을 만족할 때까지 자신의 코드 블록을 반복하는 문법입니다. 구조는 다음과 같습니다.

for(초기화 ; 조건식 ; 증감문)
{
    // 본문
}
  • 초기화 : 변수 초기화를 하는 곳입니다. for문에서만 사용할 지역 변수를 선언할 수도 있습니다.
  • 조건식 : for문이 수행될 조건이 있는 곳입니다. 예를 들어 변수 i가 10보다 작은 동안만 수행하는 조건은 i < 10입니다.
  • 증감문 : for문의 코드 블록을 완전히 수행한 후에 실행하는 증감문입니다.

for문을 사용해서 0부터 9까지 더하는 예제를 살펴봅시다.

#include <stdio.h>

int main(void) {
	int sum;
	sum = 0; 
	
	for(int i=0 ; i < 10 ; i++)
	{
		sum += i;
	}
	
	printf("sum : %d", sum);
      return 0;
}

[출력]

sum : 45

for문은 조건식이 만족되면 자신의 코드 블록을 수행합니다.

초기화, 조건식, 증감문이 어떻게 되는지 한 번 알아볼까요?

  • 초기화 : for문 안에서 사용할 변수 i를 선언하고 0으로 초기화했습니다.
  • 조건식 : i값이 10보다 작아야 참(treu)입니다.
  • 증감문 : i를 한 번에 1씩 증가합니다.

연산 흐름은 다음과 같습니다.

흐름

① i를 0으로 초기화하고, ② 조건식에서 i값이 10보다 작은지 확인합니다. 작으면 ③ for문 블록을 실행하고 ④ i를 1 증가시킵니다. ② ③ ④를 조건 ②가 참인 동안 반복하게 됩니다.

i가 9일 때를 생각해보겠습니다. 9이면 조건식 ②를 만족합니다. ③ sum에 9를 더합니다. ④ i를 1증가시켜 10이 됩니다. ② i값이 10보다 작은지 확인합니다. i가 10이므로 조건식이 거짓이 됩니다. 따라서 for문을 그대로 빠져나와 ⑤ 다음 문장을 실행합니다.

break와 continue 사용하기

break는 자신이 속한 for문 밖으로 나가는 예약어입니다. continue는 실행 블록을 마치고 증감문으로 점프하는 예약어입니다.

이둘을 for문에서 사용하는 예제를 하나 살펴보겠습니다.

#include <stdio.h>

int main(void) {
	int sum;
	sum = 0; 
	
	for(int i=0 ; i < 10 ; i++)
	{
		if(i == 0)   
		{
			continue;
		}
		
		sum += i;
		
		if(i == 9)  
		{
			break;
		}
		
	}
	
	printf("sum : %d", sum); 
    return 0;
}

① i가 0이면 더 진행하지 않고 증감식으로 이동해 i값에 1을 더합니다. ② i가 9이면 증감식으로 돌아가지 않고 for문을 빠져나와 ③ 다음 문장을 실행합니다.

흐름을 그림으로 알아볼까요?

흐름

어떻게 동작하는지 잘 알겠죠?