코틀린 반복문 Kotlin Iterators

코틀린에서 가장 중요한 부분인 반복문을 알아봅니다.
반복문의 전제 조건은 개체가 반복할 수 있는 개체여야 합니다.
변수 a에 반복 가능한 개체를 할당해봅니다.
val a = mutableListOf<Int>(1, 2, 3, 4, 5, 6, 7, 8, 9)
a를 활용해서 코틀린 내에서는 반복문을 어떻게 사용하는지 알아봅니다.
1. for문
가장 자주 사용되는 for문으로 a를 반복시킬 수 있습니다.
for문 안에 if문 등을 추가하여 조건까지 설정 가능합니다.
예문을 보도록 합니다.
for (item in a){
println(item)
if (item == 5){
println("item is Five")
} else {
println("item is not Five")
}
}
출력값
1
item is not Five
2
item is not Five
3
item is not Five
4
item is not Five
5
item is Five
6
item is not Five
7
item is not Five
8
item is not Five
9
item is not Five
for문을 먼저 살펴보면, 1~9까지 저장된 변수 a에서 순서대로 값을 꺼내어 item에 넣어주는 형식입니다.
먼저, item을 출력한 후 if 조건에 따라 item이 5인 경우와 5가 아닌 경우를 출력하는 형식입니다.
2. for문 (인덱스와 값을 모두 출력)
for문을 사용하여 값뿐만 아니라 인덱스까지 모두 출력해봅니다.
이 때 사용되는 메소드는 withIndex( ) 입니다.
아래 예문을 봅니다.
for ((index, item) in a.withIndex()){
println("index: " + index + " value: " + item)
}
출력값
index: 0 value: 1
index: 1 value: 2
index: 2 value: 3
index: 3 value: 4
index: 4 value: 5
index: 5 value: 6
index: 6 value: 7
index: 7 value: 8
index: 8 value: 9
for문으로 인덱스와 값을 모두 출력하려면, 소괄호 안의 첫 번째 인자에 index가 들어갈 명칭을 정하고, 두 번째 인자에는 값이 들어갈 명칭을 정합니다. 예문에서는 각각 index, item으로 설정되어 있습니다.
이 후 a에 값과 인덱스를 모두 꺼내야 하므로, withIndex( ) 메소드를 사용해야 합니다.
출력 결과, 인덱스 번호에 따라 값이 함께 나오는 것을 알 수 있습니다.
3. forEach
forEach를 사용하여 값을 반복적으로 출력해봅니다.
a.forEach {
println(it)
}
forEach를 사용하면, 자동적으로 it라는 명칭에 a의 값 1~9가 들어가게 됩니다.
물론, it은 디폴트로 설정되는 명칭이며, 다른 이름으로도 설정이 가능합니다. 아래처럼 말이죠.
a.forEach {item ->
println(item)
}
it이 아닌 원하는 명칭으로 설정하는 경우, 명칭 뒤에 ->(Arrow)를 넣어주셔야 합니다.
출력값
1
2
3
4
5
6
7
8
9
출력값은 모두 동일합니다.
4. forEachIndexed
forEach를 사용할 때, 인덱스와 값을 모두 출력하는 경우입니다.
다음 예문을 봅니다.
a.forEachIndexed{index, item->
println("index: " + index + " value: " + item)
}
forEachIndexed를 사용하면, 두 가지 인자에 명칭을 넣게 되는데, index와 item으로 설정한 경우입니다. 이 경우 디폴트로 정해지는 명칭은 없습니다.
출력값
index: 0 value: 1
index: 1 value: 2
index: 2 value: 3
index: 3 value: 4
index: 4 value: 5
index: 5 value: 6
index: 6 value: 7
index: 7 value: 8
index: 8 value: 9