Kotlin - Range, 숫자 범위 표현

Kotlin에서 숫자 범위를 표현하는 Range에 대해서 알아봅니다.

Range 생성

Range는 start.rangeTo(end) 처럼 시작 숫자 start와, 종료 숫자 end를 지정하여 숫자 범위를 표현할 수 있습니다.

Range는 다음과 같이 in과 함께 사용될 수 있습니다. 아래 코드는 5가 1에서 10까지의 숫자 범위 안에 있는지 체크하는 조건문입니다.

if (5 in 1.rangeTo(10)) {
    println("1 <= 5 <= 10")
}

Output:

1 <= 5 <= 10

start..end

위의 Range 표현식은 start..end와 같이 간단히 표현할 수 있습니다.

if (5 in 1..10) {
    println("1 <= 5 <= 10")
}

Output:

1 <= 5 <= 10

Iterating, 반복문의 Range

Range를 이용하여 몇번 반복하는 반복문을 쉽게 구현할 수 있습니다.

다음 코드는 3에서 5까지를 순회하는 반복문입니다.

for (i in 3..5) {
    println(i)
}

Output:

3
4
5

다음과 같이 rangeTo()로 표현할 수도 있습니다.

for (i in 3.rangeTo(5)) {
    println(i)
}

Backward

반대 방향으로 순회하려면 downTo를 사용해야 합니다.

다음 코드는 5에서 3으로 감소하면서 순회하는 반복문입니다.

for (i in 5 downTo 3) {
    println(i)
}

Output:

5
4
3

Step

지정된 범위의 숫자를 순회할 때 숫자 1씩 증가하지 않고, step으로 설정한 숫자만큼 증가시킬 수 있습니다.

아래 코드는 3에서 10까지 순회하는데 2씩 증가하면서 순회합니다.

for (i in 3..10 step 2) {
    println(i)
}

Output:

3
5
7
9

Backward

반대 방향으로 순회할 때에도 step을 설정할 수 있습니다.

for (i in 10 downTo 3 step 2) {
    println(i)
}

Output:

10
8
6
4

forEach

forEach로 range를 순회할 수 있습니다.

(1..4).forEach {
    println(it)
}

Output:

1
2
3
4

Backward

반대 방향으로 순회할 때 reversed()를 사용하면 됩니다.

(1..4).reversed().forEach {
    println(it)
}

Output:

4
3
1
2
Loading script...
codechachaCopyright ©2019 codechacha