Kotlin forEach (break, continue) 사용 방법 및 예제

코틀린에서 반복문을 사용할 때 사용할 수 있는 forEach에 대해 살펴보도록 하겠습니다.

기본적인 사용방법과 응용 방법을 보도록 하겠습니다.

 

forEach란

우선 forEach가 무엇인지 간단하게 알아보고 가겠습니다.

forEach란 리스트 요소를 하나씩 꺼내 반복적으로 처리를 해주는 기능입니다.

 

기본 사용 방법

fun main() {
    val numbers = arrayOf(1, 2, 3, 4, 5)

    numbers.forEach{ i ->
        println(i)
    }

    numbers.forEach{
        println(it)
    }
}

 

결과

1
2
3
4
5
1
2
3
4
5

 

2가지 forEach 사용방법을 작성해봤습니다.

차이점은 첫 번째로 작성한 4번째 줄인 forEach에서는 i를 가지고 있지만, 두 번째로 작성한 8번째 줄인 forEach에서는 가지고 있지 않습니다.

코틀린에서는 이처럼 명시적으로 변수에 값을 저장할 수 있지만, 암묵적인 방법으로도 저장할 수 있습니다.

4번째 줄에서는 i에 저장하겠다고 명시적으로 작성하였습니다.

8번째 줄에서는 어디에다가 저장하겠다고 변수를 지정하지 않았습니다.

이렇게 암묵적인 방법을 사용하는 경우에는 it라는 변수에 저장됩니다.

즉 변수 지정을 하지 않은 경우에는 it에 값이 저장됩니다.

 

continue, break

코틀린에서 forEach를 사용하여 반복 처리를 할 때 도중에 건너뛰거나, 루프를 빠져나오고 싶은 경우가 있습니다.

for문을 사용하는 경우라면 continue 또는 break를 사용하여 원하는 처리를 할 수 있습니다.

하지만 forEach에서는 continue와 break를 사용할 수 없습니다.

그러면 어떻게 루프에서 빠져나오거나 건너뛸 수 있는지 알아보겠습니다.

continue 예제

fun main() {
    (1..10).forEach{
        println(it)
        if (it == 3) {
            return@forEach
        }
    }

    println("done")
}

 

결과

1
2
4
5
6
7
8
9
10
done

 

foreach에서 continue와 같은 동작을 하기 위해서는 return@forEach를 사용하면 됩니다.

break 예제

fun main() {
    run {
        (1..10).forEach {
            if (it == 3) {
                return@run
            }
            println(it)
        }
    }

    println("done")
}

 

결과

1
2
3
done

 

foreach에서 break와 같은 동작을 하기 위해서는 return@run를 사용하면 됩니다.

 

정리

forEach 기본 사용방법과 간단한 응용 방법을 살펴보았습니다.

for문과 같은 반복 처리를 하지만 작성방법이 조금 다르기 때문에 알아두면은 편하게 사용할 수 있습니다.

특히 continuebreak는 for문과 사용방법이 다르기 때문에 기억해둬야 할 부분입니다.

댓글