더북(TheBook)

WhiteLabeled.kt를 다음과 같이 다시 쓸 수도 있다.

BreakAndContinue/Improved.kt

import atomictest.eq
fun main() {
  val strings = mutableListOf<String>()
  for (c in 'a'..'c') {
    for (i in 1..4) {
      val value = "$c$i"
      if (value < "c3") { // [1]
        strings.add(value)
      }
    }
  }
  strings eq listOf("a1", "a2", "a3", "a4",
    "b1", "b2", "b3", "b4", "c1", "c2")
}

이 코드가 훨씬 더 이해하기 좋다.

[1] (알파벳순으로) "C3"보다 앞에 있는 String만 추가한다. 이 코드는 이전 예제에서 "C3"에 도달했을 때 break를 사용했던 것과 같은 결과를 낳는다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.