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

    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
    }
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.