더북(TheBook)

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
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.