Kotlin - for 반복문, 배열/리스트 순회

for문의 기본적인 사용 방법과 리스트, 배열 등의 요소들을 순회하는 방법을 소개합니다.

1. for문으로 특정 횟수 반복

아래와 같이 정수 범위 지정하여 특정 동작을 반복할 수 있습니다.

  • 1..5 : 1에서 5까지 반복
  • 5 downTo 1 : 5에서 1까지 반복
fun main() {

    for (i in 1..5) {
        print("$i ")
    }

    println()
    for (i in 5 downTo 1) {
        print("$i ")
    }
}

Output:

1 2 3 4 5
5 4 3 2 1

1.1 step으로 특정 횟수 반복

step을 사용하면 index가 step 만큼 증가/감소하여 지정한 범위 내에서 반복합니다.

예를 들어, 아래 예제에서

  • 1..10 step 2는 1, 3, 5... 처럼 2씩 증가하면서 10에 도달하기 전까지 반복합니다.
  • 10 downTo 1 step 2은 10, 8, 6... 처럼 2씩 감소하면서 1에 도달하기 전까지 반복합니다.
fun main() {

    for (i in 1..10 step 2) {
        print("$i ")
    }

    println()
    for (i in 10 downTo 1 step 2) {
        print("$i ")
    }
}

Output:

1 3 5 7 9
10 8 6 4 2

2. 배열의 모든 요소 순회

for문으로 배열의 모든 요소를 순회하는 가장 쉬운 방법은 아래와 같이 in 키워드를 사용하는 방법입니다.

아래 예제는 배열의 모든 요소를 순차적으로 순회합니다.

fun main() {

    val arr = arrayOf("a", "b", "c", "d", "e")

    for (value in arr) {
        print("$value ")
    }
}

Output:

a b c d e

2.1 index로 배열 요소 접근

만약 index로 순회하고 싶을 때는 in Array.indices를 사용하면 됩니다. indices는 배열의 index를 갖고 있는 IntRange를 리턴합니다.

아래 예제는 배열의 index 범위를 for문으로 순회하고, index로 배열의 요소 값에 접근합니다.

fun main() {

    val arr = arrayOf("a", "b", "c", "d", "e")

    for (i in arr.indices) {
        print("${arr[i]} ")
    }
}

Output:

a b c d e

2.2 배열의 index와 value 접근

for문에서 배열의 index와 value를 바로 접근하고 싶을 때는, Array.withIndex()를 사용할 수 있습니다.

아래와 같이 index와 value에 직접 접근할 수 있습니다.

fun main() {

    val arr = arrayOf("a", "b", "c", "d", "e")

    for ((i, value) in arr.withIndex()) {
        println("index: $i, value: $value ")
    }
}

Output:

index: 0, value: a
index: 1, value: b
index: 2, value: c
index: 3, value: d
index: 4, value: e

3. 리스트의 모든 요소 순회

in 키워드를 사용하여 아래와 같이 for문에서 리스트의 모든 요소를 순회할 수 있습니다.

fun main() {

    val list = listOf("a", "b", "c", "d", "e")

    for (value in list) {
        print("$value ")
    }
}

Output:

a b c d e

3.1 index로 배열 요소 접근

indices는 리스트의 index의 IntRange를 리턴합니다.

아래와 같이 index로 순회하면서 리스트에 접근할 수 있습니다.

fun main() {

    val list = listOf("a", "b", "c", "d", "e")

    for (i in list.indices) {
        print("${list[i]} ")
    }
}

Output:

a b c d e

3.2 리스트의 index와 value 접근

withIndex()를 이용하여 for문에서 index와 value를 직접 접근할 수 있습니다.

fun main() {

    val list = listOf("a", "b", "c", "d", "e")

    for ((i, value) in list.withIndex()) {
        println("index: $i, value: $value ")
    }
}

Output:

index: 0, value: a
index: 1, value: b
index: 2, value: c
index: 3, value: d
index: 4, value: e
Loading script...
codechachaCopyright ©2019 codechacha