📚반복문
반복문은 일정 범위의 문장을 반복하여 실행하고 싶을 때 사용하는 구문입니다. for, while, do while 구문이 있습니다.
📄for문
일반적으로 하나의 루프 제어 변수를 두고 이 변수를 초기화한 후 반복조건이 참이면 지정된 문장을 반복합니다.
1
2
3
4
| for(초기화식; 반복 조건식; 증감식)
{
반복할 문장;
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
| #include <iostream>
int main()
{
int sum = 0;
for (int i = 1; i <= 10; ++i)
{
sum += i;
}
std::cout << sum << std::endl;
}
|
C++11에는 범위 기반 for 루프라는 구문이 추가되었습니다. 범위 기반 for 루프는 여러 원소로 구성된 데이터 집합에 대해 첫 원소부터 마지막 원소까지 반복하여 실행하도록 지시합니다.
1
2
3
4
| for(원소선언: 데이터 집합)
{
반복할 문장;
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| #include <iostream>
int main()
{
int arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
int sum = 0;
// element는 arr 각각의 원소 값을 받음
for (int element : arr)
{
sum += element;
}
std::cout << sum << std::endl;
}
|
📄while문
반복조건이 참이면 주어진 문장을 반복하는 형태입니다. 아래 코드의 반복문은 양의 정수가 입력되면 계속 반복되고 0 또는 음의 정수를 입력하면 반복 조건이 거짓이기 때문에 반복을 중단합니다.
1
2
3
4
| while(반복조건)
{
반복할 문장;
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| #include <iostream>
int main()
{
int val, total = 0;
std::cin >> val;
while (val > 0)
{
total += val;
std::cin >> val;
}
std::cout << total << std::endl;
}
|
📄do while문
do while문은 while문과 유사하지만 블록 안에 있는 문장을 먼저 실행하고 반복 여부를 결정합니다.
1
2
3
4
| do
{
반복할 문장;
}while(반복조건);
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| #include <iostream>
int main()
{
int i = 0, n;
int sum = 0;
std::cout << ("양의 정수 입력: ");
std::cin >> n;
do
{
sum += i;
++i;
} while (i <= n);
std::cout << "0 ~ " << n << "까지 합 = " << sum << std::endl;
}
|
📄break, continue
break 명령은 반복문을 빠져나가게 하고 continue 명령은 반복문 블록의 나머지를 건너뛰고 다시 반복문으로 돌아갑니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| #include <iostream>
int main()
{
int num, sum = 0;
while (true)
{
std::cout << "number(Enter the '0' to Quit): ";
std::cin >> num;
if (num == 0)
{
break;
}
sum += num;
}
std::cout << "sum = " << sum << std::endl;
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| #include <iostream>
int main()
{
int num = 1;
while (num != 0)
{
std::cout << "number(Enter the '0' to Quit): ";
std::cin >> num;
if (num < 0)
{
std::cout << "num : Negative number!" << std::endl;
continue;
}
std::cout << "Sqaureroot of " << num << " = " << sqrt(num) << std::endl;
}
}
|
Leave a comment