- 区间表示:.. 闭区间、until 半闭半开区间。
downTo降续闭区间、step跨度步长。- 使用 in 和 !in 关键字
一、.. 、until 区间
- 在kotlin语言中,闭区间采用区间运算符(..)表示,而半开区间则需要使用中缀运算符 until 表示。
for (x in 0..5) {
print("$x, ") // 定义闭区间,包括0和5
}
for (x in 0 until 5) {
print("$x, ") // 定义半开区间,包括0但不含5
}
for (x in 'A'..'E') {
print("$x, ") // 定义闭区间,包括A和E
}
for (x in 'A' until 'E') {
print("$x, ") // 定义半开区间,包括A但不含E
}
结果:
0, 1, 2, 3, 4, 5,
0, 1, 2, 3, 4,
A, B, C, D, E,
A, B, C, D,
-
补充内容:
downTo 表示降续闭区间;step 表示跨度步长。
(5 downTo 1).joinToString(", ").run(::println)
(1..10 step 3).joinToString(", ").run(::println)
结果:
5, 4, 3, 2, 1
1, 4, 7, 10
- 数组的
indices
返回数组的索引区间
intArrayOf(1, 2, 3, 4, 5).indices.forEach(::println)
运行结果:
0
1
2
3
4
二、使用 in 和 !in 关键字
使用 in 关键字可以判断一个数值是否在区间中,而 !in 关键字则是判断一个值是否不在区间中。此外,这两个个关键字 (in 和 !in) 还可以判断一个数值是否在集合或数组中。
var testScore = 80
var grade = when (testScore) {
in 90..100 -> "优"
in 90..100 -> "良"
in 90..100 -> "中"
in 90..100 -> "差"
else -> "无"
}
println("Grade = " + grade)
if (testScore !in 60..100) {
println("不及格")
}