본문 바로가기
C C++/C언어 기초

C언어 for 반복문의 모든 것

by Go! Jake 2022. 3. 20.

반복문은 조건을 만족하는 동안 특정영역을 반복하는 구조입니다. 반복문은 광범위하게 사용이 되며 대표적으로 while문과 for문이 있습니다. for문에 대해 알아보겠습니다.

 

 

for문 기초 익히기

기본 for문

for문은 while문과 함께 대표적인 반복문입니다. for문은 while문과 대비하여 비교적으로 반복 구성에 필요한 정보(횟수 등)가 명확하다면 구성하기 수월합니다. 상황마다 어떤 반복문이 편한지는 조금씩 다릅니다.

 

반복 횟수가 명확한 경우이면 for문이 유리할 수 있습니다. 다른 상황으로, 사용자에 입력 조건을 받는 경우 while문이 유리할 수 있습니다.

 

for문에 반드시 필요한 것은 초기식, 조건식, 증감식입니다. 이 세 가지 조건이 명확하다면 for문을 구성하기 수월합니다.

#include <stdio.h>
#pragma warning(disable:4996)


int main(void)
{
	for (int num = 0; num < 3; num++)
	{
		printf("Hi\n");
	}
	return 0;
}

- for (초기식; 조건식; 증감식)으로 구성되어 있습니다. 필요에 따라 생략도 가능합니다.

- 초기식을 지정할 수 있어 변수 지정에 수월합니다. int num = 0;으로 설정하였습니다. 초기 1회만 실행됩니다.

- 조건식은 while문의 조건식과 유사합니다. 조건이 '참'인 경우 반복문을 수행합니다.

- 증감식을 통해 수월하게 변수를 증감시킬 수 있습니다.

- 첫 for문 실행 구조는 초기식 => 조건식 => 조건이 '참'인 경우 명령문 => 증감식입니다. 따라서 num++로 증감식을 넣는다고 하더라도 초기식에서 바로 증감이 되지는 않습니다.

 

<for문 예제>1부터 10까지 더한 값을 구하는 경우 아래와 같습니다.

#include <stdio.h>
#pragma warning(disable:4996)


int main(void)
{
	int total = 0;
	for (int num = 1; num <= 10; num++)
	{
		total += num;
	}
	printf("%d", total);
	return 0;
}

for (int num = 1; num <= 10; num++)

- 초기식 int num = 1; 조건식 num<=10; 증감식 num++ 구성합니다.

- 각각의 num 값을 total 변수에 더합니다.

- for문이 모두 종료된 후 printf 함수를 통해 최종 값을 출력합니다.

 

for문의 중첩

for문 안에 for문이 있는 것을 for문의 중첩이라고 합니다. 반복되어야 하는 변수가 2가지인 경우 for문의 중첩이 필요합니다. 예를 들어 구구단 계산입니다.

#include <stdio.h>
#pragma warning(disable:4996)


int main(void)
{
	for (int num1 = 2; num1 <= 9; num1++)
	{
		for (int num2 = 1; num2 <= 9; num2++)
		{
			printf("%dx%d=%d\n", num1, num2, num1 * num2);
		}
	}
	return 0;
}

각 num1, num2 변수는 초기식에서 정의 되었고, 두 번의 for문을 통해 2x1...2x9, 9x1...9x9까지 모두 구구단 계산식을 출력할 수 있습니다.

break를 통해 반복문 빠져 나오기

break문은 가장 가까운 반복문을 하나 빠져 나오는 것입니다.

#include <stdio.h>
#pragma warning(disable:4996)


int main(void)
{
	for (int num = 1; ; num++) //초기식 int num = 1, 증감식 num++
	{
		printf("%d\n", num); // num 값을 출력
		if (num == 10) // num 값이 10인지 확인
		{
			break; // num 값이 10인 경우 break를 통해 for문 탈출
		}
	}
	return 0;
}

- for문 내 if 문 조건인 num == 10이 만족하면 break하여 for문을 탈출하는 예시입니다.

댓글