3.3.2 범위, 진행, 연산
코틀린은 순서가 정해진 값 사이의 수열(interval)을 표현하는 몇 가지 타입을 제공한다. for 루프로 어떤 수 범위를 반복해야 할 때는 이런 타입이 유용하다. 코틀린에서는 이런 타입을 범위(range)라고 부른다.
범위를 만드는 가장 간단한 방법은 수 값에 대해 .. 연산자를 사용하는 것이다.
val chars = 'a'..'h' // 'a'부터 'h'까지의 모든 문자 val twoDigits = 10..99 // 10부터 99까지의 모든 수 val zero2One = 0.0..1.0 // 0부터 1까지의 모든 부동소수점 수
in 연산을 사용하면 어떤 값이 범위 안에 들어있는지 알 수 있다. 기본적으로는 한 쌍의 비교식을 조합한 것과 같다.
val num = readLine()!!.toInt() println(num in 10..99) // num >= 10 && num <= 99
이와 반대 연산인 !in도 있다. !in을 사용하면 !(a in b)를 더 간단하게 쓸 수 있다.
println(num !in 10..99) // !(num in 10.99)
실제로는 수 타입, Char, Boolean, String 등 모든 비교 가능한(comparable) 타입에 대해 .. 연산을 쓸 수 있다. 기본적으로 <=와 >=를 쓸 수 있는 타입이라면 이 타입에 대해 ..를 사용해 범위를 만들 수 있다.
println("def" in "abc".."xyz") // true println("zzz" in "abc".."xyz") // false