Kotlin ‐ for문의 강력함[Effective Kotlin Item 7] - woojin-playground/Backend-PlayGround GitHub Wiki

for문의 강력함

  • 코틀린에서 for문은 순회 가능한 객체를 순회할 때 사용한다.
for (value in iterable) {
    println(value)
}
  • 결과 타입은 Iterator이고, operator 제어자가 붙은 iterator 메서드를 제공하는 객체라면 순회할 수 있다.
  • 이 메서드를 정의하는 가장 쉬운 방법은 Iterable 인터페이스를 구현하는 것이다.

범위(Range)

  • 코틀린에서 1..5처럼 두 숫자 사이에 점 2개를 찍어 정수 범위를 뜻하는 IntRange 클래스를 만들 수 있다.
  • IntRange 클래스는 Iterable을 구현하고 있어 for문에서 사용이 가능하다.
  • 코틀린 컴파일러가 내부적으로 성능을 최적화하기 때문에 이 방법은 편리하면서도 효율적이기도 하다.
  • ..를 사용해 만들어진 범위에는 마지막 값도 포함된다.
  • 마지막 값 전에 멈추는 범위를 만들고 싶으면 ..< 연산자나 until 중위 연산자를 사용해야 한다.
  • 만약 역방향으로 즉, 큰 수에서 작은 수로 순회하고 싶다면 downTo 함수를 사용한다.
for (i in 1..5) {
    print(i) // 12345
}
for (i in 1..<5) {
    print(i) // 1234
}
for (i in 1 until 5) {
    print(i) // 1234
}
// 역방향 순회
for (i in 5 downTo 1) {
    print(i) // 54321
}
for (i in 1..10 step 3) {
    print("$i ") // 1 4 7 10 
}

break와 continue

  • break : 가장 가까운 반복문을 종료한다.
  • continue : 가장 가까운 반복문의 다음 단계로 건너뛴다.