반응형
반복문이란?

하나 이상의 문장을 N번 이상 반복 실행하기 위해서 구성하는 문장

 

 

 

반복문의 종류

while, do~while, for

 

 

 

while문

while문은 반복영역내부의 코드를 조건이 참일동안 반복시켜줍니다.

반복문의 대상이 한 문장이면 중괄호 생략 가능합니다.

 

주의사항

들여쓰기(tab)를 해야 가독성이 좋습니다!

 

 

 

무한루프의 구성

숫자 1은 '참'을 의미하므로 반복문의 조건은 계속해서 '참'이 된다.

이렇듯 반복문의 탈출조건이 성립하지 않는 경우 무한루프를 형성한다고 한다.

 

이러한 무한루프는 실수로 만들어지는 경우도 있지만, break문과 함께 유용하게 사용되기도 한다.

break문은 강제로 반복문을 나가게 만들어주는 기능입니다.

 

 

 

반복문 중첩

반복문은 중첩이 가능합니다.

while문으로 예시를 들면 while문 안에 while문이 존재하는 상태입니다.

 

 

do~while문 기본구성

반복조건을 반복문의 마지막에 진행하는 형태이기 때문에

최소한 1회는 반복영역을 실행하게 된다. 이것이 while문과의 가장 큰 차이점입니다.

 

최소한 1회 이상 실행되어야 하는 반복문은 do~while문으로 구성하는 것이 자연스럽다.

문법은 아래의 그림과 같이 사용하면 됩니다.

 

while문과 do~while문과의 차이

while문은 반복영역을 실행하기전에 조건을 검사하고 들어가고,

do~while문은 반복영역을 실행한 후에 조건을 검사하고 들어갑니다.

 

조건이 맞지 않을 경우, while문은 반복영역이 실행되지 않고,

do~while문은 1회는 실행이 가능합니다.

 

 

 

반복문 필수 3요소
  • 반복을 제어하기 위한 변수
  • 반복 조건검사
  • 조건을 빠져나오기 위한 연산(장치) / 조건을 false로 만들어서 반복문을 탈출하려는 장치

 

 

 

for문의 구조

초기식에서의 값이 조건식을 만나고 해당 조건에 만족하면 반복문장을 실행후에 증감식에 가서

초기값을 증가합니다 이를 다시 조건식에 비교하는 방식으로 반복문장에 있는 코드들이 반복됩니다.

 

일부 컴파일러는 여전히 초기식에서의 변수 선언을 허용하지 않습니다.

for문의 반복영역도 한 줄이면 중괄호 생략가능합니다

 

 

 

for문의 흐름 이해

for문의 흐름은 밑에 그림에 설명이 잘 되어있기에 별도의 설명은 생략하겠습니다!

 

 

 

for문 메모리

아래의 코드에서 변수 num은 main함수가 시작하자마자 메모리에 저장됩니다.

그리고 main함수가 끝나야지 메모리가 해제가 됩니다.

int main(void)
{
	int num;
    
	for(num = 0; num < 3; num++)
	{
		printf("Hello");
	}
}

 

아래의 코드에서는 int가 for문 안에서 선언되어서 for문에서 처음으로 메모리에 저장됩니다.

그리고 for문이 끝나야 메모리가 해제가 됩니다.

for(int num = 0; num < 3; num++)
{
	printf("Hello");
}

 

위 두개의 차이점은 for문안에서 변수가 선언된 경우에는 for문이 끝나면 main함수에서 더 이상 활용되지 않습니다.

반대로 main함수(for문 밖에서 선언한다면)에서 선언을 한다면 for문이 끝나고 num변수를 활용할 수 있습니다!

프로그래머는 프로그래밍을 최적화를 해야하기 때문에 메모리를 최대한 잘 활용해야 합니다.

for문안에서만 쓸 변수라면 for문안에서 변수를 선언하는것이 좋습니다!

 

이미지 출처 : 윤성우의 열혈 C 프로그래밍

 

반응형

 

반응형

'C' 카테고리의 다른 글

함수에 대하여!  (0) 2023.05.10
조건문에 대하여!  (1) 2023.05.10
printf함수와 scanf함수 정리하기!  (0) 2023.05.09
자료형에 대하여!  (0) 2023.05.09
비트 연산자에 대하여!  (0) 2023.05.09

+ Recent posts