반복문
프로그램 소스 코드 내에서 특정한 부분의 코드가 반복적으로 수행될 수 있도록 하는 구문
while 문
- C++에서 사용되는 반복문 중 하나
- while 문은 다음과 같이 작성한다.
while (/*조건식*/){
/*실행구문*/
}
- while (1), while (true) 처럼 무한 루프 반복문을 생성할 수 있다.
기본 while 문
#include <iostream>
int main() {
int sum = 0;
int i = 1;
// i가 10이 될 때까지 더하는 반복문
while (i <= 10) {
sum += i;
i++;
}
std::cout << "sum = " << sum << std::endl;
return 0;
}
sum = 55
무한 반복문
- ctrl + c로 종료할 수 있다.
#include <iostream>
int main() {
int i = 1;
while (true) {
std::cout << i << " ";
i++;
}
return 0;
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 ...
do-while 문
- 조건을 만족하든 말든, do의 코드를 먼저 실행하고 싶을 때 사용하는 구문이다.
#include <iostream>
int main() {
int sum = 0;
int i = 1;
// i가 5이 될 때까지 더하는 반복문
do {
std::cout << "sum = " << sum << std::endl;
sum += i;
i++;
} while (i <= 5);
std::cout << "최종 sum 값은 " << sum << "입니다." << std::endl;
return 0;
}
sum = 0
sum = 1
sum = 3
sum = 6
sum = 10
최종 sum 값은 15입니다.
for 문
- C++에서 사용되는 반복문 중 하나
- for 문은 다음과 같이 작성한다.
for (/*초기식*/; /*조건식*/; /*증감식*/){
/*실행구문*/;
}
기본 for 문
#include <iostream>
int main() {
int sum = 0;
for (int i = 1; i <= 10; i++) {
sum += i;
}
std::cout << "sum = " << sum << std::endl;
return 0;
}
sum = 55
- for 문에 2개 이상의 초기값을 설정할 수 있다.
#include <iostream>
int main() {
for (int i = 1, j = 1; i<=10; i++, j*=2) {
std::cout << "i = " << i << ", j = " << j << std::endl;
}
return 0;
}
i = 1, j = 1
i = 2, j = 2
i = 3, j = 4
i = 4, j = 8
i = 5, j = 16
i = 6, j = 32
i = 7, j = 64
i = 8, j = 128
i = 9, j = 256
i = 10, j = 512
이중 for 문
- 반복문은 중첩이 가능하다.
#include <iostream>
int main() {
for (int i = 1; i <= 2; i++) {
for (int j = 1; j <= 9; j++) {
std::cout << i << " * " << j << " = " << i * j << std::endl;
}
std::cout << std::endl;
}
return 0;
}
1 * 1 = 1
1 * 2 = 2
1 * 3 = 3
1 * 4 = 4
1 * 5 = 5
1 * 6 = 6
1 * 7 = 7
1 * 8 = 8
1 * 9 = 9
2 * 1 = 2
2 * 2 = 4
2 * 3 = 6
2 * 4 = 8
2 * 5 = 10
2 * 6 = 12
2 * 7 = 14
2 * 8 = 16
2 * 9 = 18
무한 반복문
- 무한 반복문은 다음과 같이 작성하여 생성할 수 있다.
for (/*초기식*/; true; /*증감식*/){
/*실행구문*/;
}
for (;;){
/*실행구문*/;
}
- 조건문을 생략하는 경우에도 true가 default이므로 무한 반복문이 실행된다.
#include <iostream>
int main() {
for (int i = 0; true; i++) {
std::cout << i << " ";
}
return 0;
}
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ...
배열 원소 하나씩 출력하기
- 범위 기반 for 문 (C++11 이상)
- 이터러블한 자료구조의 원소를 다음과 같은 구문으로 하나씩 꺼낼 수 있다.
for (datatype name: iterator){
/*실행구문*/;
}
출력
#include <iostream>
int main() {
int a[5] = { 1, 3, 5, 7, 9 };
for (int i: a) {
std::cout << "i = " << i << std::endl;
}
return 0;
}
i = 1
i = 3
i = 5
i = 7
i = 9