Kotlin Academy · 강의

Char와 사용자 지정 범위

정수를 넘어선 범위

레슨 4/413개 단계

Char와 사용자 지정 범위은(는) CoddyKit의 무료 Kotlin Academy 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Kotlin Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Kotlin Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

정수를 넘어서

범위는 Int에만 사용하는 것이 아닙니다. Kotlin은 문자와 기타 비교 가능한 타입의 범위를 지원합니다.

이 레슨에서는 문자 범위와 사용자 정의 타입이 rangeTo로 범위에 참여하는 방법을 살펴봅니다.

문자 범위 복습

문자에는 정의된 순서가 있으므로 'a'..'z'는 유효한 범위입니다.

반복하거나 포함 여부를 확인하는 등 다양한 작업을 할 수 있습니다.

fun main() {
    for (c in 'a'..'f') print(c)
    println()
    println('q' in 'a'..'z')
}

문자 검증하기

문자 범위를 사용하면 숫자나 문자인지 확인하는 등의 입력 검증을 읽기 쉽게 작성할 수 있습니다.

fun isDigit(c: Char): Boolean = c in '0'..'9'

fun main() {
    println(isDigit('7'))
    println(isDigit('x'))
}

문자 세기

문자 범위를 반복하고 값을 수집하면 간단한 알파벳 목록을 만들 수 있습니다.

fun main() {
    val alphabet = ('a'..'z').toList()
    println(alphabet.size)
    println(alphabet.first())
    println(alphabet.last())
}

긴 정수 범위

범위는 Long에도 사용할 수 있어 큰 숫자 범위에 유용합니다.

동일한 연산자를 적용할 수 있습니다.

fun main() {
    val big = 1L..5L
    println(big.sum())
}

비교 가능한 타입의 범위

모든 Comparable 타입은 ..으로 범위를 만들 수 있지만, 이러한 범위는 반복이 아니라 포함 여부 확인만 지원합니다.

예를 들어 String 범위는 사전식 순서를 확인합니다.

fun main() {
    val range = "apple".."mango"
    println("cherry" in range)
    println("zebra" in range)
}

일부 범위를 반복할 수 없는 이유

반복하려면 정의된 증분이 필요합니다. 정수와 문자에는 1을 더하는 증분이 있지만, 문자열과 실수에는 다음 값을 정하는 명확한 방법이 없습니다.

따라서 이러한 범위는 in은 지원하지만 for 반복문은 지원하지 않습니다.

fun main() {
    val r = 1.0..5.0
    println(2.5 in r)
    // for (x in r) // not allowed for Double
}

사용자 정의 타입과 rangeTo

.. 연산자는 rangeTo 함수를 호출합니다. 클래스가 Comparable을 구현하면 별도 작업 없이 범위 포함 여부를 사용할 수 있습니다.

여기서는 간단한 버전 클래스가 숫자로 비교됩니다.

data class Ver(val n: Int) : Comparable<Ver> {
    override fun compareTo(other: Ver) = n - other.n
}

fun main() {
    val range = Ver(1)..Ver(5)
    println(Ver(3) in range)
    println(Ver(9) in range)
}

연산자의 내부 동작

a..b를 작성하는 것은 a.rangeTo(b)를 호출하는 것과 같습니다.

연산자 형식은 같은 함수를 더 보기 좋게 작성한 구문일 뿐입니다.

fun main() {
    val r1 = 1..5
    val r2 = 1.rangeTo(5)
    println(r1.toList() == r2.toList())
}

알맞은 범위 선택하기

간단한 지침은 다음과 같습니다:

  • 숫자와 문자 → 반복하고 확인합니다
  • 실수와 사용자 정의 비교 가능 타입 → 포함 여부만 확인합니다
  • 증분이 필요하면 정수 또는 문자 진행 수열을 사용하십시오
fun main() {
    println('m' in 'a'..'z')
    println(3.5 in 1.0..4.0)
    println(50 in 1..100)
}

모든 내용 정리하기

범위는 다양한 타입에 일반화해 사용할 수 있습니다:

  • 문자 범위는 반복과 검증을 지원합니다
  • Long 범위는 큰 범위를 처리합니다
  • 비교 가능한 타입과 사용자 정의 타입은 포함 여부를 지원합니다
  • ..은 rangeTo의 축약 표현입니다
fun main() {
    val vowels = "aeiou"
    for (c in 'a'..'z') {
        if (c in vowels) print(c)
    }
    println()
}

간단히 확인하기

문자 범위와 사용자 정의 범위에 대한 이해를 확인해 보십시오.

복습

문자 범위와 사용자 정의 범위를 배웠습니다:

  • 문자와 Long 범위는 Int처럼 반복할 수 있습니다
  • 비교 가능한 타입은 ..을 통해 포함 여부를 지원합니다
  • 불연속 타입은 in으로 확인할 수 있지만 반복문으로 순회할 수 없습니다
  • ..은 rangeTo의 축약 표현입니다

이로써 범위와 진행 수열 과정이 끝났습니다.

무료로 시작

AI 튜터와 함께 Kotlin을(를) 배우세요 — 무료

브라우저에서 실제 코드를 작성하고 실행하며, 24/7 AI 튜터로부터 즉각적인 도움을 받고, 웹이나 앱에서 중단한 부분부터 계속 학습하세요.

코스
51
레슨
203

자주 묻는 질문

“Char와 사용자 지정 범위” 강의는 무료인가요?

네 — “Char와 사용자 지정 범위” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Kotlin Academy 강의 전체를 잠금 해제할 수 있습니다. Kotlin Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“Char와 사용자 지정 범위”에서 뭘 배우나요?

정수를 넘어선 범위 브라우저에서 직접 실행하는 실습 코드로 Kotlin Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Kotlin Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Kotlin Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.

“Char와 사용자 지정 범위” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Kotlin Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Kotlin Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 범위 연산자
  2. Step과 downTo
  3. 반복문의 범위
  4. Char와 사용자 지정 범위
← Kotlin Academy(으)로 돌아가기