[C] 6. 반복문 (흐름과 제어)

Wonder_Land🛕·2022년 7월 18일
0

[C]

목록 보기
6/18
post-thumbnail
  1. for문
  2. 중첩된 for문
  3. while문
  4. do ~ while문
  5. break문과 continue문
  6. Q&A
  7. 마치며

1. for문

1) for문의 구조

for (초기식;조건식;증감식)
{
	...
}

(1) 초기식

  • 초기식
    : 제어변수가 초기화 됩니다.

C언어에서는 '얼마나 반복'을 해야하는 지 알기 위해 '제어변수'를 도입했습니다.

이를 통해, 제어변수가 특정 조건을 만족할 때까지만 반복을 수행하게 됩니다.

이 제어변수의 초기값을 '초기식'에서 지정합니다.

(2) 조건식

  • 조건식
    : 제어변수가 만족해야할 특정 조건입니다.

제어변수가 조건식을 만족할 때,
즉 참이 될 때만 반복문이 수행됩니다.

(3) 증감식

  • 증감식
    : 1회 실행 시 제어변수의 값을 변화시키는 식입니다.

만약, 제어변수가 조건식에서 참을 만족해 1회 수행을 했다면
증감식을 통해 제어변수의 값을 변경합니다.

이러한 행위가 매번 실행할 때 마다 반복되고, 조건식을 만족하는지 체크하여 반복을 결정합니다.


2) 예제

#include <stdio.h>

int main(void)
{
	int i, sum = 0;

	for (i = 0; i <= 10; i++)
	{
		sum += i;
	}
	printf("1부터 10까지의 합 : %d", sum);
	return 0;
}

[Result]
1부터 10까지의 합 : 55

위의 예제는 1부터 10까지의 합을 구하는 코드입니다.

for문에서 제어변수 i를 통해 1(정확히는 0부터죠)부터 10까지의 합을 구했습니다.

매 반복마다 i1씩 더하면서 10이하라면 for문을 수행하게 됩니다.

즉, for문은 { } 안에 작업들을 조건식이 성립할 동안 반복해주는 것이고, 매 반복마다 증감식을 실행합니다.


2. 중첩된 for문

  • 중첩된 for문
    : for문 안에 또 다른 for문이 들어있는 형태

1) 형식

for(초기식1;조건식1;증감식1)	// 1st for문
{
	...
	for(초기식2;조건식2;증감식2)	// 2nd for문
    {
    	...
    }
}
  • 반복 횟수 : (순회할 객체1의 수) * (순회할 객체2의 수)

2) 예제

#include <stdio.h>

int main(void)
{
	int i, j;

	for (i = 1; i < 10; i++)	// 1st for문
	{
		for (j = 1; j < 10; j++)	//2nd for문
		{
			printf("%d * %d : %d\n", i, j, i*j);
		}
		printf("\n");
	}
	return 0;
}

[Result]
1 * 1 = 1
1 * 2 = 2
1 * 3 = 3
...
9 * 7 = 63
9 * 8 = 72
9 * 9 = 81


3. whlie문

1) while문의 구조

whlie(조건식)
{
	...
}

2) 예제

#include <stdio.h>

int main(void)
{
	int i = 0, sum = 0;

	while (i <= 10)
	{
		sum += i;
		i++;
	}
	printf("1부터 10까지의 합 : %d", sum);
	return 0;
}

[Result]
1부터 10까지의 합 : 55

위의 예제는 1부터 10까지의 합을 구하는 코드를 while문으로 작성했습니다.

for문과 구조적인 차이는 있습니다만,
하는 행위는 동일합니다.

차이점이 있다면
1. 제어변수 i를 먼저 초기화해주셔야 합니다.
2. 증감식이 while문 내에 위치합니다.

이러한 이유 때문에, 논리적인 오류가 많이 발생하니 주의해야겠네요!


4. do ~ whlie문

1) do ~ while문의 구조

do
{
	...
} while (조건식);

do ~ while문은 while문과 비슷하지만 가장 큰 차이점이 있습니다!

바로,
while문은 명령을 실행하기 전 조건식이 참인지 검사합니다.
따라서, 조건식이 처음부터 거짓이라면 while문을 실행안할 수도 있죠

하지만, do ~ while문은 명령문을 수행한 후에 조건식의 참/거짓을 판별합니다.
따라서, 최소한 한 번은 실행하게 됩니다.


5. break문과 continue문

논리적으로 이 반복문들의 순서를 바꿀 수 있는 방법이 없을까요?

당연히 있겠죠😉
그건 바로, 지금 살펴볼 break문continue문입니다.

  • break문
    : 논리적으로 반복문을 빠져나갈 때 사용
  • continue문
    : 이후 코드는 건너뛰고 반복문을 계속 실행할 때 사용

다음은 break를 사용해,
제어변수 i5이면 반복문을 빠져나오는 코드입니다.

#include <stdio.h>

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

[Result]
0 1 2 3 4

다음은 위의 코드와 다르게 continue를 사용해,
제어변수 i5이면 건너뛰는 코드입니다.

#include <stdio.h>

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

[Result]
0 1 2 3 4 6 7 8 9


6. Q&A

-


7. 마치며

-

[Reference] : 위 글은 다음 내용을 참고, 인용하여 만들어졌습니다.

profile
아무것도 모르는 컴공 학생의 Wonder_Land

0개의 댓글