9 - 1 에서는 반복문 while을 알아보았다.
while은 반복하는 조건이 명확할 때 사용이 가능하다고 했었는데
이번에 알아볼 반복문 for는 반복하는 횟수가 명확할 때 사용이 가능하다.
for문의 기본 동작조건은 아래와 같다.
#include<iostream>
int main()
{
for(int i = 0; i < 5; i++)
{
std::cout << i;
}
// 출력값 : 01234
}
for문의 사용 방법은 for의 소괄호 안에 변수 초기화, 조건, 증감식을 세미콜론으로 구분하여 적어넣는 것이다.
변수 초기화에서는 반복의 기준이 되는 변수를 초기화 시킨다.
위와 같이 for문에서 사용할 변수를 새로 만들 수 있고, 기존의 변수를 초기화하여 사용하는 것도 가능하다.
조건에서는 for문에서 사용하기위해 초기화한 변수가 반복문을 탈출할 조건을 설정한다.
위에서는 for문에서 사용할 변수 i가 5보다 작을 경우로 조건을 설정했다.
증감식에서는 for문에서 사용할 변수가 설정해둔 조건을 탈출할 수 있도록 반복할 때 마다 변수를 증감시키는 식을 설정한다.
위에서는 변수 i가 0에서 시작하여 5보다 작을 때 까지 반복하게 설정해두었으므로 i++로 증감식을 설정하여
i가 0에서부터 1씩 커지며 5보다 넘는 순간이 찾아와 조건을 탈출하도록 증감식을 설정했다.
종합하면, 위의 for문은 0으로 초기화한 변수 i가 반복문을 거치면서 1씩 커지며, 5보다 크거나 같아질 때 반복문을 탈출하게 되는 것이다.
반복문을 수행하는 중, 특정한 조건에서 건너뛰거나, 아예 반복문을 탈출시키고 싶을 때가 있을 것이다.
이 때를 위해, while문과 for문같은 반복문에서, 조건에 해당하더라도 해당 반복문을 탈출하거나 건너뛰는 방법이 있다.
바로 switch문에서 사용했던 break;와, 반복문에서 새롭게 알게된 개념인 continue; 이다.
break;는 switch때와 마찬가지로 만나는 순간 해당 반복문을 탈출하게 되고,
continue;는 만나는 순간 해당 반복문을 실행하지 않고, 바로 다음 반복을 진행하게 되는 것이다.
#include<iostream>
int main()
{
int input = 1;
std::cout << "1부터 입력한 값 까지의 수 중, 2의 배수를 제외합니다. 0. 종료" << std::endl;
while (true)
{
std::cin >> input;
if(input == 0)
break;
for(int i = 1; i < input; i++)
{
if(i % 2 == 0) // 2의 배수 검사시 출력값에서 제외
continue;
std::cout << i << ", ";
}
}
// 출력값 : 1, 3, 5, 7 ...
}
위의 코드 처럼 while문을 반복하면서, while을 탈출하고 싶을 때의 분기를 정해서 break;로 빠져나오거나
for문 진행 중 continue를 통해 건너뛰고싶은 분기를 if로 설정한 후 건너뛸 수 있다.
for문 역시 for문 안에 for문을 삽입하는 것이 가능하다.
중복검사와 같은 알고리즘을 구현할 수 있는데, 이는 다음 장인 10. 배열 에서 알아보도록 하자.
'C++ 일기' 카테고리의 다른 글
| 11 - 1. 함수 (2) | 2024.02.26 |
|---|---|
| 10. 배열 (array[]) (0) | 2024.02.23 |
| 9 - 1. 반복문 while (0) | 2024.02.23 |
| 8. switch문 (0) | 2024.02.21 |
| 7. 조건문 if (0) | 2024.02.21 |