[Kotlin] 코틀린의 for문 / in · .. · until · step · downTo · indices
코틀린에서 for문을 사용하는 방법을 알아보겠다.
각 문법마다 하나씩 직접 테스트해보는 내용이니,
문법 요약만 필요한 사람은 최하단의 요약 탭으로 이동하기 바란다.
기본 사용법 : ( in .. )
코틀린에서의 for문은 자바와 조금 다르다.
문법을 먼저 보자.
// 자바 for문
for (초기화식 ; 조건식 ; 증감연산) { 반복할 내용 }
// 코틀린 for문
for (변수 in 범위) { 반복할 내용 }
대표적인 특징으로는 코틀린에서는 세미 콜론(;)을 사용하지 않는다.
그리고 in 연산자를 사용하며 범위는 마침표 2개(..)로 표현할 수 있다.
이제 예시를 보겠다.
for (i in 0..5) {
println(i)
}
결과)
0부터 5까지 모두 출력한 것을 확인할 수 있다.
한 줄로 표현하기 : 중괄호{} 생략
만약 중괄호{} 안에서의 동작이 한 줄로 간단히 표현 가능하다면,
if문 표현과 동일하게 중괄호를 생략하고 표현할 수 있다.
for (i in 0..5) println(i)
깔 - 끔
일정 횟수 건너뛰기 : step
step 키워드를 사용하여 증감을 조절할 수 있다.
for (i in 1 .. 5 step 2) println(i)
결과)
위와 같은 방법으로 홀수 / 짝수를 필터링할 수도 있다.
마지막 범위 제외 : ( in until )
Array.length or List.size 등을 다룰 때,
우리는 해당 범위의 마지막 요소는 제외하는 for문을 많이 사용하곤 한다.
for (i in 0 until 5) println(i)
그럴 때는 마침표 2개(..) 대신 until 키워드를 사용할 수 있다.
결과)
5 이전까지만 출력한 것을 확인할 수 있다.
Collection 사용 시 : ( indices )
위에서 Array나 List를 사용할 때 until 키워드를 언급했지만,
사실 Collection에 해당하는 클래스를 다룰 때는 해당 Collection 객체만 사용해도 된다.
val array = arrayOf(0, 1, 2, 3)
for (i in array) println(i)
문법이 간단하여 확장 for문 또는 foreach문과 비슷한 형태로 느껴진다.
또는 아래와 같이 해당 Collection의 index를 얻어오는 indices를 사용할 수도 있다.
val array = arrayOf(0, 1, 2, 3)
for (i in array.indices) println(i)
결과)
두 방법 모두 해당 Collection의 길이만큼만 출력해준다.
하행으로 반복하기 : ( in downTo )
이번에는 1부터 5까지가 아닌, 5에서 1까지 출력해보자.
for (i in 5 .. 1) println(i)
위처럼 기본 범위 연산자(..)를 사용하면 아무것도 출력되지 않는다.
하행 반복을 할 때는 downTo 키워드를 사용한다.
for (i in 5 downTo 1) println(i)
결과)
✅ for문 키워드 요약
● for (i in 0 .. 3) print(i)
출력 → 0 1 2 3
● for (i in 0 until 3) print(i)
출력 → 0 1 2
● for (i in 0 .. 5 step 2) print(i)
출력 → 0 2 4
● for (i in 3 downTo 0) print(i)
출력 → 3 2 1 0
● for (i in Collection) print(i)
출력 → Collection의 크기만큼 반복
코틀린의 for문에 대해 알아보았다.
자바와 비교했을 때 정말 편리하긴 하지만, 다양한 키워드를 숙지해야 한다.
