Introduction
Ranges in Kotlin are a simple and powerful way to work with sequences of values. They are commonly used for iteration and checking whether a value falls within a certain range. This chapter will cover the syntax and usage of ranges in Kotlin, along with examples of their application.
Basic Range
A range in Kotlin is defined using the ..
operator. It includes both the start and end values.
Syntax
val range = start..end
Example
fun main() {
val range = 1..5
for (i in range) {
println(i)
}
}
Explanation:
val range = 1..5
: Creates a range from 1 to 5.for (i in range)
: Iterates over each value in the range.println(i)
: Prints each value.
Output:
1
2
3
4
5
Exclusive Range
You can create an exclusive range that does not include the end value using the until
function.
Syntax
val range = start until end
Example
fun main() {
val range = 1 until 5
for (i in range) {
println(i)
}
}
Explanation:
val range = 1 until 5
: Creates an exclusive range from 1 to 4 (5 is not included).for (i in range)
: Iterates over each value in the range.println(i)
: Prints each value.
Output:
1
2
3
4
Downward Range
You can create a range that decreases by using the downTo
function.
Syntax
val range = start downTo end
Example
fun main() {
val range = 5 downTo 1
for (i in range) {
println(i)
}
}
Explanation:
val range = 5 downTo 1
: Creates a range from 5 to 1, decrementing by 1 each time.for (i in range)
: Iterates over each value in the range.println(i)
: Prints each value.
Output:
5
4
3
2
1
Step in Range
You can specify a step value for the range to control the increment or decrement between values using the step
function.
Syntax
val range = start..end step stepValue
Example
fun main() {
val range = 1..10 step 2
for (i in range) {
println(i)
}
}
Explanation:
val range = 1..10 step 2
: Creates a range from 1 to 10 with a step of 2.for (i in range)
: Iterates over each value in the range.println(i)
: Prints each value.
Output:
1
3
5
7
9
Example with Downward Step
fun main() {
val range = 10 downTo 1 step 2
for (i in range) {
println(i)
}
}
Explanation:
val range = 10 downTo 1 step 2
: Creates a range from 10 to 1 with a step of 2.for (i in range)
: Iterates over each value in the range.println(i)
: Prints each value.
Output:
10
8
6
4
2
Checking Membership
You can check if a value belongs to a range using the in
operator.
Syntax
val isInRange = value in range
Example
fun main() {
val range = 1..10
val number = 5
if (number in range) {
println("$number is in the range")
} else {
println("$number is not in the range")
}
}
Explanation:
val range = 1..10
: Creates a range from 1 to 10.val number = 5
: Initializes a variablenumber
with the value 5.if (number in range)
: Checks ifnumber
is in therange
.println("$number is in the range")
: Prints a message ifnumber
is in the range.
Output:
5 is in the range
Ranges with Characters
Ranges are not limited to numbers; you can also create ranges with characters.
Example
fun main() {
val range = 'a'..'e'
for (ch in range) {
println(ch)
}
}
Explanation:
val range = 'a'..'e'
: Creates a range from ‘a’ to ‘e’.for (ch in range)
: Iterates over each character in the range.println(ch)
: Prints each character.
Output:
a
b
c
d
e
Example Program with Ranges
Here is an example program that demonstrates the use of various forms of ranges in Kotlin:
fun main() {
// Basic range
println("Basic range:")
for (i in 1..5) {
println(i)
}
// Exclusive range
println("\nExclusive range:")
for (i in 1 until 5) {
println(i)
}
// Downward range
println("\nDownward range:")
for (i in 5 downTo 1) {
println(i)
}
// Range with step
println("\nRange with step:")
for (i in 1..10 step 2) {
println(i)
}
// Downward range with step
println("\nDownward range with step:")
for (i in 10 downTo 1 step 2) {
println(i)
}
// Checking membership
println("\nChecking membership:")
val range = 1..10
val number = 7
if (number in range) {
println("$number is in the range")
} else {
println("$number is not in the range")
}
// Ranges with characters
println("\nRanges with characters:")
for (ch in 'a'..'e') {
println(ch)
}
}
Conclusion
In this chapter, you learned about ranges in Kotlin, including their syntax and usage for iterating over sequences of values, creating exclusive and downward ranges, using step values, and checking membership. You also saw how to create ranges with characters. Understanding how to use ranges is essential for managing sequences of values and performing iterations effectively in your Kotlin programs.