코틀린에서는 어느 문장 앞에든 레이블을 붙일 수 있지만, breakcontinue에는 구체적으로 루프 앞에 붙은 레이블만 사용할 수 있다. 그렇지 않으면 컴파일러가 오류를 보고한다. 레이블 이름은 배열이나 함수와 마찬가지로 임의의 식별자가 될 수 있다.

    자바 vs. 코틀린 코틀린과 자바는 레이블 정의와 사용 문법이 다르다.

    loop@ while(true) break@loop // 코틀린
    loop: while(true) break loop // 자바

    레이블을 사용하면 (레이블을 사용하는 다른 경우도 있지만) breakcontinuewhen 식 안에서 쓰면서 제어를 옮길 대상 루프를 지정할 수 있다. 이로 인해 앞 절에서 살펴본 수 추측 프로그램을 다음과 같이 작성할 수 있다.

    import kotlin.random.*
    
    fun main() {
      val num = Random.nextInt(1, 101)
      
      loop@ while (true) {
        val guess = readLine()!!.toInt()
        
        val message = when {
          guess < num -> "Too small"
          guess > num -> "Too big"
          else ->break@loop // 정상
        }
        println(message)
      }
      println("Right: it's $num")
    }
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.