1. 반복문이란

반복문은 특정 조건이 만족될 때 까지 할당된 코드 블럭을 반복적으로 실행하는 구문이다. 컴퓨터라는 장치는 기본적으로 인간이 할 크고 복잡한 계산들을 빠르고 정확하게 처리하기 위해 개발되었다. 즉, 이 반복문이 사실상 모든 프로그램의 메인 엔진이라고 할 수 있다.

2. 반복문 구조 - for 문

for 문은 가장 많이 사용하게 될 반복문 형태이다.

//   ↓초기식  ↓조건식 ↓증감식
for(int i=0; i<10; i++) {
	...
}

for문은 for(초기식;조건식;증감식) { 반복할 코드 } 의 구조로 이루어져 있다.

  • 초기식 : 조건식에서 사용할 변수의 초기화를 진행한다. 경우에 따라서 비워놓을 수 도 있다. 반복문마다 한번만 실행된다.
  • 조건식 : 해당 for문을 지속할지 여부를 결정하는 조건문을 삽입한다. 조건문이 거짓인 경우, 반복문이 종료된다.
  • 증감식 : 반복문 블럭이 실행될 때마다 수행하는 식이다. 대부분 초기식에서 초기화한 변수의 값을 변화시킨다. 위의 예제에서는 i가 0부터 시작해서 9가 될 때까지 ...에 해당하는 구문이 반복 실행되고 i가 10이 될 때 조건문이 거짓이 되어 종료된다. 즉, ...에 해당하는 구문은 총 10번 실행된다.

3. 반복문 구조 - while 문

while 문도 for문 다음으로 많이 사용하는 반복문 형태이다. 사실 for while 2개 밖에 없다. do - while 이나 재귀 형태 반복문 / goto 반복문은 설명하지 않는다.

while(c < 10) {
	...
}

while문은 조건문밖에 없는 형식이다. 조건으로 주어진 식이 참인 동안 블럭 내부를 반복한다. for문과 다른 점은 없다.

4. 무한 반복문

단순하게 중단되지 않고 계속 실행되는 반복문을 호칭하는 용어이다. 아래와 같은 반복문들은 영원히 조건이 참이기 때문에 무한 반복문이라고 부를 수 있다.

// 단순하게 조건 자체에 true 를 넣은 경우
while(true) {
	...
}
 
// 조건식에 자연수가 들어가 있는 경우 ( 0보다 큰 수는 true로 취급한다. )
while(1) {
	...
}
 
// 증감식이 없는 for문
for(int i=0;i<10;) {
	...
}
 
// 조건식이 없는 for문
for(int i=0;;i++) {
	...
}

위의 경우는 단순히 예시고, 여러가지 바리에이션이 있다. 의도적으로 이런 반복문을 작성해 사용하는 경우도 있지만 무한 반복문은 **TLE**가 나게 된다.

5. 흐름 제어문

특정 조건에서 반복문을 종료하거나 재시작하고 싶을 때 사용한다.

1. break

break 문이 실행되면 그 즉시 반복문이 종료된다.

int c = 0;
while(true) {
	if(c == 5) break;
	c++;
}

위 반복문에서 while 문 조건은 무한 반복문이지만 if소절에서 c가 5가 되면 반복문을 종료하게 만든다.

for(int i=0;i<10;i++) {
	if(i == 5) break;
	cout << i << "\n";
}

마찬가지로 위 반복문은 i가 09까지 반복하며 i값을 출력하지만 i가 5가되면 /if(i == 5) break;문을 만나 종료하게 되므로 실제로는 04까지만 출력하게 된다.

2. continue

continue문이 실행되면 그 즉시 반복문 블럭의 시작으로 돌아간다. 단순히 블럭의 시작으로 돌어가는 것이 아니라 조건식과 for문이라면 증감식까지도 재실행하게 된다.

int c = 0;
while(c < 10) {
	c++;
	if(c % 2 == 0) continue;	
	cout << c << "\n";	
}

위 예제는 c가 0~9 까지 반복하며 c값이 홀수 일 때만 출력하게 된다.

for(int i=0;i<10;i++) {
	if(i % 2 == 0) continue;
	cout << i << "\n";
}

같은 동작을 하는 for문이다.