[C++] 반복문, 반복문 탈출 방법

2024. 3. 3. 22:49Programming Language/C++

아래 링크 클릭 시 해당 본문으로 이동

반복문(Loop)

반복문 탈출 방법 (continue, break)


반복문(Loop)

• 어떤 조건이 완료되기 전까지 코드가 일정 구간 반복(loop)되면서 같은 명령을 수행하게 하는 제어문

 프로그램에서 똑같은 명령을 일정 횟수만큼 반복하기 위해 사용하는 문장

• 조건이 참인 동안 계속 반복하고 거짓이 되면 반복문을 끝낸다.


초기식, 조건식, 증감식

반복자(iterator) : 배열처럼 여러 개의 데이터의 집합으로 이루어진 자료구조를 순회하는 객체

1) 초기식

 반복자 초기화로 초기값을 설정한다.

• 처음 딱 한 번만 실행된다.

• 보통 대입문의 형식이다.

 

2) 조건식

• 반복자의 조건을 체크하여 반복문을 언제까지 실행할 것인지 결정한다.

• 결괏값은 참(true) 또는 거짓(false)으로 결정된다.

• 조건이 참인 동안 계속 반복하고 거짓이 되면 반복문을 끝낸다.

 

3) 증감식

• 반복자 값 변경

조건 체크를 할 때 매번 똑같게 나오지 않게 하려면 반복자로 설정된 변수의 값이 바뀌어야 한다.

조건 체크할 때 거짓이 나와야 반복문을 탈출하므로 반복자의 값을 변경시켜줘야 한다.

• 반복자로 설정된 변수의 값을 증감시킨다.

값을 변경시켜 주면서 조건이 달라질 수 있게 한다.

• 한 번 반복할 때 반복자를 얼마나 증감시킬 것인지 정한다.

반복문이 한 번 실행될 때 증감식도 한 번 실행된다.


1. for문

for (초기식; 조건식; 증감식)
{
  조건식 결과가 참인 동안 반복적으로 실행할 명령문;
}

• 초기식, 조건식, 증감식은 각각 생략할 수 있다.

다 생략하면 무한 루프가 된다.

for ( ; ; )
{
  // 무한 루프로 실행할 명령문
}

for문 진행 순서

① 초기식

② 조건식 체크

명령문 실행

④ 증감식

⑤ 조건식 체크 ➜ 이면 ③번으로, 거짓이면 ⑥번으로

for문 종료

 

▷ 예시

#include <stdio.h>

int main()
{
	// a가 0~4까지 총 5번 반복된다.
	for (int a = 0; a < 5; ++a)
    {
    	printf("Hello World!\n");
    }

	return 0;
}

for문 실행 결과


for문에서 `i`가 0~10까지 반복될 때마다 나오는 값 : 정수형 vs. 실수형

#include <stdio.h>

int main()
{
	// 정수형
    for (int i = 0; i < 10; ++i)
    {
        printf("i : %d\n", i);
    }
    
    // 실수형
    for (float f = 0; f < 10.f; ++f)
	{
		printf("f: %f \n", f);
	}
    
    return 0;
}

 

정수형인 `i`는 10번 반복되면서 0~9까지, 실수형인 `f`는 0.000000~9.000000까지 증가한다.

for문 출력 결과 (int)
for문 출력 결과 (float)


2. while문

초기식;
while (조건식)
{
  조건식 결과가 참인 동안 반복적으로 실행할 명령문;
  증감식;
}

while문 진행 순서

① 초기식

② 조건식 체크

③ 명령문 실행

④ 증감식

⑤ 조건식 체크 ➜ 이면 ③번으로, 거짓이면 ⑥번으로

⑥ while문 종료

 

▷ while문 예시

// a가 0~2까지 총 3번 반복된다.
int a = 0;
while (a < 3)
{
	printf("Hello World!\n");
    ++a;
}

while문 실행 결과

 

for문 ⇄ while문

▷ `a`를 0부터 1까지 2번 반복하여 `Hello World!`가 2번 출력되게 하는 코드

① for문

for (int a = 0; a < 2; ++a)
{
	printf("Hello World!\n");
}

for문 실행 결과

 

② while문

int a = 0;
while (a < 2)
{
	printf("Hello World!\n");
    ++a;
}

while문 실행 결과


반복문 탈출 방법

1) continue

코드가 진행되다가 `continue;`를 만나면..

① 그 뒤에 있는 코드들을 건너뛴다.(스킵(skip)한다.)

② 반복문의 처음 부분으로 가서 다음 루프(증감식 부분)를 실행시킨다.

 

▷ 예시 (for문)

for (int a = 0; a < 6; ++a)
{
	// 변수 a가 홀수일 때는 건너뛰기
	if (a % 2 == 1)
    {
    	continue;
    }
    
    printf("Hello World!\n");
}

`Hello World!`가 3번 출력된다. ➜ `a`가 0, 2, 4일 때

continue 실행 결과 (for문)

 

2) break

• `break;`를 만나는 순간 반복문을 즉시 끝낸다.

 

▷ 예시 (while문)

int a = 0;
while (a < 6)
{
	printf("Hello World!\n");
    ++a
    
    break;  // 반복문을 즉시 탈출한다.
}

반복문이 처음 한 번만 실행되고 종료된다.

break 실행 결과 (while문)