24. 범위기반 for문

Yongs12 ㅣ 2023. 6. 15. 18:18

범위 기반 for문은 for-each 루프라고도 하며 배열 또는 컨테이너와 같은 범위의 요소를 반복할 때 간결하고 읽기 쉽게 만들어 준다.



범위 기반 for문 예시

int arr[] = {1, 2, 3, 4, 5};

// arr의 전체 요소에 접근해서 n이 읽어 들인다.
for (int n : arr) 
{
    std::cout << n << std::endl;
}



std::string str = "Hello, world!";

// str의 문자 하나하나를 c에서 읽어 들인다.
for (char c : str) 
{
    std::cout << c << " ";
}




위와 같이 사용하지만 auto를 사용하면 자료형을 생각하지 않고 쓸 수 있다.

std::string str = "Hello, world!";

for (auto c : str) 
{
    std::cout << c << " ";
}



범위 기반 for문의 지역 변수 n은 읽기 전용으로 사용 되지만 참조자를 사용하면 원본 값을 바꿀 수 있다.

int main()
{
	int aList[3] = {10,20,30};

	for (auto n : aList)
	{
		n = 0;
	}

	for (auto n : aList)
	{
		std::cout << "참조자 X : " << n << std::endl;
	}
	
	std::cout << std::endl;

	for (auto &n : aList)
	{
		n = 0;
	}

	for (auto n : aList)
	{
		std::cout << "참조자 O : " << n << std::endl;
	}
}

 

'C, C++' 카테고리의 다른 글

26. 클래스  (0) 2023.06.17
25. 함수 다중정의 (OverLoading)  (0) 2023.06.16
23. 참조자  (0) 2023.06.14
22. c++ 메모리 동적할당  (0) 2023.06.13
21. auto 자료형  (0) 2023.06.12