루프 몸통 중간에서 루프 종료 조건을 검사하기 때문에 루프의 진입 조건이 불필요해졌다. 덕분에 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") }
하지만 이런 기능을 남용하면 안 된다. 실제 더 복잡한 코드에서 이런 기능을 사용하면 코드를 이해하기 어려워질 수 있다.