Kotlin Academy · 강의

break, continue와 레이블이 지정된 반환

break와 continue로 반복문의 흐름을 제어하고 레이블로 중첩 반복문을 빠져나와 보세요.

레슨 4/413개 단계

break, continue와 레이블이 지정된 반환은(는) CoddyKit의 무료 Kotlin Academy 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Kotlin Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Kotlin Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

반복문 흐름 제어

Kotlin은 break(반복문 종료), continue(다음 반복으로 건너뛰기), 그리고 중첩된 반복문에서 빠져나오기 위한 레이블을 지원합니다.

break 기본

break는 가장 안쪽에 포함된 반복문을 즉시 종료합니다.

fun main() {
    for (i in 1..10) {
        if (i == 5) break
        print("$i ")
    }
    println() // 1 2 3 4
}

continue 기본

continue는 현재 반복의 나머지 부분을 건너뛰고 다음 반복으로 이동합니다.

fun main() {
    for (i in 1..10) {
        if (i % 2 == 0) continue
        print("$i ")
    }
    println() // 1 3 5 7 9
}

레이블이 있는 반복문

label@로 반복문에 태그를 지정하고, 내부의 중첩된 반복문에서 break@label 또는 continue@label을 참조하여 바깥쪽 반복문을 제어할 수 있습니다.

fun main() {
    outer@ for (i in 1..3) {
        for (j in 1..3) {
            if (i == 2 && j == 2) break@outer
            println("$i,$j")
        }
    }
}

레이블과 함께 사용하는 continue

continue@outer를 사용하면 바깥쪽 반복문의 다음 반복으로 건너뛸 수 있습니다.

fun main() {
    outer@ for (i in 1..3) {
        for (j in 1..3) {
            if (j == 2) continue@outer
            println("i=$i j=$j")
        }
    }
}

return@lambda

forEach와 다른 인라인 함수 내부에서는 일반적인 return이 바깥쪽 함수를 종료합니다. 람다만 종료하려면 return@forEach를 사용하세요.

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

람다의 비지역 return

forEach처럼 람다가 인라인이면 일반적인 return이 바깥쪽 함수 전체를 종료하므로 예상하지 못한 동작이 될 수 있습니다.

fun process() {
    listOf(1, 2, 3).forEach {
        if (it == 2) return // exits process()
        println(it)
    }
    println("never printed")
}
fun main() { process() }

람다에 사용자 지정 레이블 지정

name@을 사용하여 람다에 명시적으로 레이블을 지정하면 반환 대상을 더 명확하게 만들 수 있습니다.

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

while에서 break 사용

break와 continue는 while과 do-while에서 동일하게 작동합니다.

fun main() {
    var i = 0
    while (true) {
        if (i >= 3) break
        println("i = $i")
        i++
    }
}

레이블과 continue 결합하기

레이블과 continue를 사용하면 플래그 변수 없이 중첩된 알고리즘의 전체 반복을 건너뛸 수 있습니다.

fun main() {
    val grid = listOf(listOf(1,2,0), listOf(3,4,5), listOf(0,6,7))
    rows@ for (row in grid) {
        for (cell in row) {
            if (cell == 0) continue@rows
            print("$cell ")
        }
        println()
    }
}

레이블을 사용하지 말아야 할 때

레이블은 복잡성을 높입니다. 레이블을 자주 사용하게 된다면 내부 반복문을 일반적인 return을 사용하는 함수로 추출하는 방법을 고려하세요.

fun firstMatch(grid: List<List<Int>>, target: Int): Pair<Int,Int>? {
    for (r in grid.indices) for (c in grid[r].indices) {
        if (grid[r][c] == target) return r to c
    }
    return null
}
fun main() {
    val g = listOf(listOf(1,2),listOf(3,4))
    println(firstMatch(g, 3))
}

빠른 확인

Kotlin에서 내부 반복문 안에서 바깥쪽 반복문을 종료하려면 어떻게 해야 하나요?

복습

break는 가장 안쪽 반복문을 종료하고, continue는 다음 반복으로 건너뜁니다. 중첩된 흐름을 제어하려면 label@과 break@label/continue@label을 사용하세요. 람다에서는 비지역 종료를 피하기 위해 return보다 return@forEach를 우선 사용하세요.

무료로 시작

AI 튜터와 함께 Kotlin을(를) 배우세요 — 무료

브라우저에서 실제 코드를 작성하고 실행하며, 24/7 AI 튜터로부터 즉각적인 도움을 받고, 웹이나 앱에서 중단한 부분부터 계속 학습하세요.

코스
51
레슨
203

자주 묻는 질문

“break, continue와 레이블이 지정된 반환” 강의는 무료인가요?

네 — “break, continue와 레이블이 지정된 반환” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Kotlin Academy 강의 전체를 잠금 해제할 수 있습니다. Kotlin Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“break, continue와 레이블이 지정된 반환”에서 뭘 배우나요?

break와 continue로 반복문의 흐름을 제어하고 레이블로 중첩 반복문을 빠져나와 보세요. 브라우저에서 직접 실행하는 실습 코드로 Kotlin Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Kotlin Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Kotlin Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.

“break, continue와 레이블이 지정된 반환” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Kotlin Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Kotlin Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 범위와 컬렉션을 순회하는 for 반복문
  2. while과 do-while: 각각 언제 사용할까요
  3. forEach, repeat, forEachIndexed
  4. break, continue와 레이블이 지정된 반환
← Kotlin Academy(으)로 돌아가기