더북(TheBook)

수 범위에 대한 일반적인 루프를 어떻게 수행할 수 있을까? 이런 경우에는 앞 절에서 보여준 진행 타입을 사용해야 한다. 배열에 있는 원소 중에 인덱스가 짝수인 원소들만 두 배로 변경하고 싶다고 하자.

val a = IntArray(10) { it*it } // 0, 1, 4, 9, 16, ...

for (i in 0..a.lastIndex) {    // 0, 1, 2, 3, ...
  if (i % 2 == 0) {            // 0, 2, 4, 6, ...
    a[i] *= 2
  }
}

이 루프 간격을 사용한 진행으로 더 간편하게 작성할 수도 있다.

for (i in 0..a.lastIndex step 2) { // 0, 2, 4, 6, ...
  a[i] *= 2
}

문자열과 배열에는 원소나 문자의 인덱스 범위를 제공하는 indices라는 프로퍼티가 들어있다.

val a = IntArray(10) { it*it }  // 0, 1, 4, 9, 16, ...
for (i in a.indices step 2) {   // 0, 2, 4, 6, ...
  a[i] *= 2
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.