Kotlin Label 완벽 가이드 - break, continue, return 제어 흐름 다루기

✨ 개요

Kotlin에서는 break, continue, return 같은 흐름 제어 키워드를 사용할 때 Label(레이블)을 함께 사용하면 더욱 유연하게 흐름을 제어할 수 있습니다. 특히 중첩 루프, 고차 함수에서 코드 가독성을 높여주는 매우 유용한 기능입니다.

이번 포스팅에서는 Kotlin Label의 개념부터 사용법, 예시, 실무 팁, 면접 질문까지 모두 정리해드리겠습니다.


1️⃣ Kotlin Label이란?


2️⃣ Label 기본 사용법

Label 선언 방법

label@ for (i in 1..5) {
    for (j in 1..5) {
        if (j == 3) break@label
        println("i = $i, j = $j")
    }
}

사용 가능한 키워드


3️⃣ 실전 예제

3-1. 중첩 반복문 탈출 (break@label)

outer@ for (i in 1..3) {
    for (j in 1..3) {
        if (j == 2) break@outer
        println("i=$i, j=$j")
    }
}
// 결과: i=1, j=1

3-2. 중첩 반복문 건너뛰기 (continue@label)

outer@ for (i in 1..3) {
    for (j in 1..3) {
        if (j == 2) continue@outer
        println("i=$i, j=$j")
    }
}
// 결과: i=1, j=1 / i=2, j=1 / i=3, j=1

3-3. 람다에서 return 제어 (return@label)

fun main() {
    listOf(1, 2, 3).forEach label@{
        if (it == 2) return@label
        println(it)
    }
    println("Done")
}
// 결과: 1 / 3 / Done

3-4. 암묵적 레이블 사용 (람다 이름으로 대체)

fun main() {
    listOf(1, 2, 3).forEach {
        if (it == 2) return@forEach
        println(it)
    }
    println("Done")
}

4️⃣ Label 필요성

상황 Label 유용성
중첩 반복문 특정 루프 명확하게 종료 또는 건너뛰기
고차 함수 (람다) 내부 return 명확히 구분

5️⃣ 결론



Related Posts