Menu
Coddy logo textTech

레이블이 지정된 루프 중단

Coddy Kotlin 여정의 논리와 흐름 섹션에 포함된 레슨. 63개 중 42번째.

일반적인 break는 가장 가까운 루프만 빠져나옵니다. 바깥쪽 루프에 search@와 같은 레이블을 지정한 다음, 중첩된 루프 안에서 break@search를 사용하면 목표에 도달했을 때 전체 검색을 종료할 수 있습니다. 레이블은 그 바로 뒤에 오는 루프에 속합니다.

main 내부:

var found = -1
search@ for (row in listOf(listOf(1, 4), listOf(6, 8))) {
    for (value in row) {
        if (value % 2 == 0) {
            found = value
            break@search
        }
    }
}
println(found)

4는 행 순서에서 처음 나오는 짝수 값이며, 레이블이 지정된 break는 나머지 행을 건너뜁니다.

레이블이 지정된 break는 중첩된 작업을 포함하여 특별히 레이블이 지정된 루프를 종료합니다.

challenge icon

챌린지

중급

grid: List<List<Int>> 매개변수를 사용하여 firstEven을 완성하세요. 행 순서를 따라 첫 번째 짝수 값을 찾고, 레이블이 지정된 break를 사용하여 두 반복문을 모두 중지하세요. 일치하는 값이 없으면 -1을 반환하세요. 0과 음수인 짝수 값도 포함됩니다.

위에서 더 엄격한 범위를 지정하지 않는 한, 컬렉션은 각 수준에서 최대 100개의 요소를 포함하며, 정수 인수와 정수 컬렉션 값은 -1000에서 1000 사이입니다. 파싱을 위해 제공되는 텍스트에는 설명된 대로 유효하지 않거나 범위를 벗어난 표현이 포함될 수 있습니다.

Int 타입의 값을 반환하세요. 제공된 입력/출력 코드를 유지하세요. 이 코드는 스칼라 인수를 한 줄에 하나씩 읽습니다. 리스트는 개수와 그 뒤에 오는 요소로 시작하고, 맵은 항목 개수와 그 뒤에 오는 각 키와 값으로 시작합니다. 중첩 리스트에서는 각 행에 대해 개수와 요소 형식을 반복합니다. 제공된 main은 반환값을 출력한 다음 줄바꿈 하나를 출력합니다. 리스트에는 Kotlin의 표준 대괄호 형식을 사용하며, 추가 레이블은 출력하지 마세요.

직접 해보기

fun firstEven(grid: List<List<Int>>): Int {
    // 여기에 솔루션을 작성하세요.
    return 0
}
fun main() {
    val gridCount = readln().toInt()
    val grid = mutableListOf<List<Int>>()
    for (i0 in 0 until gridCount) {
        val gridItemCount = readln().toInt()
        val gridItem = mutableListOf<Int>()
        for (i1 in 0 until gridItemCount) {
            val gridItemItem = readln().toInt()
            gridItem.add(gridItemItem)
        }
        grid.add(gridItem)
    }
    println(firstEven(grid))
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

논리와 흐름의 모든 레슨

직접 연습해 보세요: Kotlin 플레이그라운드