본문 바로가기

전자 공학/C언어 C++

[C++ 독학하기] 5. 범위 기반 for문

반응형

안녕하세요. 취업한 공대누나입니다.

오늘은 C++에 새로 생긴 범위 기반 for문에 대해서 공부를 해보도록 하겠습니다.

저도 처음 접해보는 것이라 정말 새로운 문법이었는데요.

우리가 일반적으로 쓰던 for문과는 무엇이 다른지 살펴보도록 하겠습니다.


1. 범위 기반 for문

예전에 for문에 대해 배운것을 기억하시나요?

for문은 대부분 일정 '횟수'를 중심으로 반복을 하게 됩니다.

따라서 보통 배열 자료구조에 접근할 때 for문을 자주 사용하게 되는데 이는 배열의 요소가 선언할 때 확정되기 때문입니다. 그런데 만약 배열 요소의 개수를 변경해야 한다면 for문도 수정을 해야합니다.

하지만 범위 기반 for문으로 작성을 하게 되면 그럴 필요가 없습니다.

범위 기반 for문은 C++11에서 공식적으로 추가되었습니다. 이를 통해 반복문을 간결하게 표현할 수 있게 되었는데요.

예를 들어서 배열 요소의 개수가 10개이면 범위 기반 for문은 자동으로 10회 반복을 하게 됩니다.

즉, 반복 횟수가 배열 요소의 개수에 맞춰서 자동으로 결정이 되는 것입니다.

 

for(auto 요소변수 : 배열이름)
반복구문;
범위 기반 for문 문법

2. 예제 소스 코드 (1)

 

왜 사용하는지 알게 되었으니 이번에는 직접 사용해보도록 하겠습니다.

문법이 간단한만큼 예제 소스코드도 정말 간단합니다.

컴파일러 입장에서는 굳이 횟수를 지정해주지 않아도 배열을 탐색하겠다는 조건이 주어지면 알 수 있는 것입니다.

전체 배열 요소에 접근할 때는 범위 기반 for문을 사용하는 것이 좋습니다. 

일반적으로 배열에 접근을 할 때 실수를 많이 하기 때문입니다.

물론 그냥 우리가 아는 일반적인 for문으로 실수 안하시는 분들은 그대로 사용하셔도 좋습니다.


3. 예제 소스 코드 (2)

범위 기반 for문을 이용하여 배열의 요소를 모두 같게 변경시킬 수도 있습니다.

참조형으로 값을 변경 참조형이 아닌 경우 변경되지 않음

이렇게 참조형으로 해야지 값을 변경시킬 수 있다는 것도 기억해주시기 바랍니다.


새로운 개념이라서 처음에는 공부하기 싫었는데 ㅎㅎ

그래도 알고 나니 별거 아닌 것 같습니다.

낯설어서 어렵게 느껴지는 것들이 있는데 이건 그것에 해당하는 것 같습니다.

반응형