더북(TheBook)

루프 몸통 중간에서 루프 종료 조건을 검사하기 때문에 루프의 진입 조건이 불필요해졌다. 덕분에 guess 변수를 루프 내부로 옮길 수 있다.

자바 vs. 코틀린 return과 마찬가지로 코틀린의 break, continue 문도 Nothing 타입의 식으로 쓸 수 있다. 예를 들어 앞의 프로그램을 출력하기 전에 메시지를 계산하는 프로그램으로 다시 작성할 수도 있다.

import kotlin.random.*

fun main() {
  val num = Random.nextInt(1, 101)
  
  while (true) {
    val guess = readLine()!!.toInt()
    val message =
      if (guess < num) "Too small"
      else if (guess > num) "Too big"
      else break
    println(message)
  }
  
  println("Right: it's $num")
}

하지만 이런 기능을 남용하면 안 된다. 실제 더 복잡한 코드에서 이런 기능을 사용하면 코드를 이해하기 어려워질 수 있다.

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