반복문(Loops) - 2부: for
매번 카운터 변수를 직접 만들고 1씩 증가시키는 과정은 조금 번거로울 수 있습니다. 사실 이런 작업은 프로그래밍에서 매우 자주 일어나는 일이죠. Rust에서는 값의 범위를 따라 더 간결하게 반복할 수 있는 for 루프를 제공합니다.
for 루프
for 루프는 반복자(Iterator)1에 들어있는 각 요소에 대해 코드 블록을 실행하는 방식입니다. 일반적인 형태는 다음과 같습니다.
for <요소> in <반복자> {
// 반복 실행할 코드
}
범위(Ranges)
Rust 표준 라이브러리는 일련의 숫자들을 차례대로 훑을 때 사용할 수 있는 범위(Range) 타입을 제공합니다2.
예를 들어, 1부터 5까지의 숫자를 모두 더하고 싶다면 다음과 같이 작성할 수 있습니다.
let mut sum = 0;
for i in 1..=5 {
sum += i;
}
루프가 돌 때마다 i에는 범위에 정의된 다음 값이 차례로 들어가며 본문 코드가 실행됩니다.
Rust에는 다섯 가지 종류의 범위 표현이 있습니다.
1..5: 1부터 4까지 포함하는 범위입니다. 마지막 값인 5는 포함되지 않습니다. (반열린 범위)1..=5: 1부터 5까지 모두 포함하는 범위입니다. 마지막 값인 5도 포함됩니다. (닫힌 범위)1..: 1부터 해당 데이터 타입의 최대값까지 포함하는 무한 범위입니다...5: 해당 데이터 타입의 최소값부터 시작하여 4까지 포함하는 범위입니다. 5는 포함되지 않습니다...=5: 해당 데이터 타입의 최소값부터 시작하여 5까지 모두 포함하는 범위입니다.
시작값이 명시된 앞의 세 가지 범위는 for 루프에서 바로 사용할 수 있습니다. 나머지 두 가지는 나중에 다른 상황에서 쓰이는 것을 보게 될 것입니다.
참고로, 범위의 경계값에는 꼭 숫자 리터럴만 쓸 수 있는 것은 아닙니다. 변수나 표현식을 사용할 수도 있습니다.
let end = 5;
let mut sum = 0;
for i in 1..(end + 1) {
sum += i;
}
더 읽어보기
Exercise
The exercise for this section is located in 02_basic_calculator/07_for