No Rules Rules

for문 종류 (feat. c++, for each, range based for) 본문

언어/C++

for문 종류 (feat. c++, for each, range based for)

개발하는 완두콩 2022. 7. 20. 13:56
728x90
반응형

앞서 설명드렸던, 흔히들 알고 있는 for문은 다음과 같습니다.

for(int idx = 0; idx < 10; ++idx)
{
	...
}
 

C++언어에서는 색다른 for문이 추가되었는데요. 그것은 for each문 입니다.

int some_value[10];
for each(int value in some_value)
{
	...
}
 

특이하게 생겼죠?

for each문은 배열의 인자를 하나씩 받아옵니다.

즉, 위 for each문은 10번의 논리식을 수행하게 되고(some_value가 10개라서)

매회마다 value의 값이 변하게 됩니다.(some_value의 첫번째부터 마지막까지)

잠깐!

논리식의 기능에 따라 for each문의 단점(?)이 존재하는데요.

바로 증감식에서 사용된 변수 (첫 예제를 보자면 변수명 idx 가 되겠습니다.) 의 부재입니다.

 

물론 for each문을 시작하기 이전에 idx 변수를 생성하고

for each문 내에서 idx에 대한 증감이 이루어져도 되겠지만

굳이 한줄 이상을 추가할 필요는 없겠죠?

물론 논리식에서 idx 변수를 사용할 일이 없다면 상관 없습니다.

 

for each문과 비슷한 성격으로 range-based for문 이라는 것도 존재합니다.

int some_value[10];
for(int value : some_value)
{
	...
}
 

동작은 물론 기능까지 for each와 동일합니다.

잠깐!

for each문과 range-based for문은 배열만 사용 가능할까요?

정답은 아닙니다!

C++언어에서 사용할 수 있는 STL 중 vector, list, map 등과 같은 자료구조도 사용 가능합니다!

 

여기서 range-based for문을 다음과 같이 변경하려고 합니다.

반응형
int some_value[10];
for(const int& value : some_value)
{
	...
}
 

무엇이 바뀌었을까요?

왜 바꾸었을까요?

 

다음은 const 에 대해서 알아보도록 하겠습니다.

 

728x90
반응형
Comments