반복문
2025. 3. 27. 23:05ㆍProgramming Languages/C++
3.2 반복문
3.2.1 for 문
일정 횟수만큼 코드 블록을 반복 실행합니다.
기본 구문:
for (초기화; 조건식; 증감식) {
// 반복 실행되는 코드
}
예제:
#include <iostream>
int main() {
// 1부터 5까지 출력
for (int i = 1; i <= 5; i++) {
std::cout << i << " ";
}
std::cout << std::endl;
return 0;
}
for 문의 구성 요소:
- 초기화: 반복문이 시작되기 전에 한 번만 실행됩니다.
- 조건식: 각 반복 전에 평가되며, 참이면 반복을 계속하고 거짓이면 종료합니다.
- 증감식: 각 반복 후에 실행됩니다.
각 구성 요소는 선택 사항입니다:
// 무한 루프
for (;;) {
// 무한히 반복
// break로 탈출 필요
}
// 초기화와 증감식 외부에 배치
int i = 0;
for (; i < 5;) {
std::cout << i << " ";
i++;
}
3.2.2 범위 기반 for 문 (C++11)
배열, 벡터 등의 컨테이너를 쉽게 순회할 수 있는 간결한 구문입니다.
기본 구문:
for (요소_타입 변수명 : 컨테이너) {
// 컨테이너의 각 요소에 대해 반복 실행
}
예제:
#include <iostream>
#include <vector>
#include <string>
int main() {
// 배열 순회
int numbers[] = {1, 2, 3, 4, 5};
for (int num : numbers) {
std::cout << num << " ";
}
std::cout << std::endl;
// 벡터 순회
std::vector<std::string> fruits = {"apple", "banana", "cherry"};
for (const std::string& fruit : fruits) { // 참조로 순회하여 복사 방지
std::cout << fruit << " ";
}
std::cout << std::endl;
return 0;
}
참조를 사용한 수정 예제:
#include <iostream>
#include <vector>
int main() {
std::vector<int> numbers = {1, 2, 3, 4, 5};
// 각 요소를 2배로
for (int& num : numbers) { // 참조로 접근하여 수정
num *= 2;
}
// 결과 출력
for (int num : numbers) {
std::cout << num << " "; // 2 4 6 8 10
}
std::cout << std::endl;
return 0;
}
3.2.3 while 문
조건이 참인 동안 코드 블록을 반복 실행합니다.
기본 구문:
while (조건식) {
// 조건이 참인 동안 반복 실행
}
예제:
#include <iostream>
int main() {
int count = 1;
while (count <= 5) {
std::cout << count << " ";
count++;
}
std::cout << std::endl;
return 0;
}
while 문은 일반적으로 반복 횟수가 미리 정해지지 않은 경우에 사용합니다:
#include <iostream>
#include <random>
int main() {
std::random_device rd;
std::mt19937 gen(rd());
std::uniform_int_distribution<> dis(1, 6);
int dice;
// 6이 나올 때까지 주사위 굴리기
while ((dice = dis(gen)) != 6) {
std::cout << "주사위: " << dice << " (6이 아님)" << std::endl;
}
std::cout << "주사위: 6! 종료합니다." << std::endl;
return 0;
}
3.2.4 do-while 문
코드 블록을 한 번 실행한 후, 조건이 참인 동안 계속 반복 실행합니다.
기본 구문:
do {
// 적어도 한 번은 실행되고, 조건이 참인 동안 반복
} while (조건식);
예제:
#include <iostream>
int main() {
int count = 1;
do {
std::cout << count << " ";
count++;
} while (count <= 5);
std::cout << std::endl;
return 0;
}
do-while은 조건을 검사하기 전에 코드 블록을 실행하므로, 최소한 한 번은 실행됩니다:
#include <iostream>
#include <string>
int main() {
std::string password;
do {
std::cout << "비밀번호를 입력하세요: ";
std::cin >> password;
} while (password != "secret");
std::cout << "로그인 성공!" << std::endl;
return 0;
}
3.2.5 중첩 반복문
하나의 반복문 안에 다른 반복문을 포함할 수 있습니다.
예제 (구구단 출력):
#include <iostream>
#include <iomanip> // std::setw 등 포맷팅을 위한 헤더
int main() {
// 구구단 2단부터 9단까지 출력
for (int i = 2; i <= 9; i++) {
std::cout << i << "단:" << std::endl;
for (int j = 1; j <= 9; j++) {
std::cout << i << " x " << j << " = " << std::setw(2) << (i * j) << std::endl;
}
std::cout << std::endl;
}
return 0;
}
예제 (별표로 삼각형 출력):
#include <iostream>
int main() {
int height = 5;
for (int i = 1; i <= height; i++) {
// 공백 출력
for (int j = 1; j <= height - i; j++) {
std::cout << " ";
}
// 별표 출력
for (int k = 1; k <= 2 * i - 1; k++) {
std::cout << "*";
}
std::cout << std::endl;
}
return 0;
}
'Programming Languages > C++' 카테고리의 다른 글
조건부 컴파일 (0) | 2025.03.27 |
---|---|
제어 흐름 변경 (0) | 2025.03.27 |
제어문 (0) | 2025.03.27 |
챕터2. 실습 문제 (0) | 2025.03.27 |
타입 별칭 및 auto 키워드 (0) | 2025.03.27 |