区间的创建
- 通过 .. 创建闭区间,包含起止值
val intRange = 1..10 // [1,10]
val charRange = 'a'..'z' // ['a','z']
val longRange = 100L..10000L // [100L,10000L]
val floatRange = 1f..10f // 不可数的区间,无法遍历
val doubleRange = 2.0..10.0 // 不可数的区间,无法遍历
println(intRange.joinToString()) // 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
println(charRange.joinToString()) // a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z
println(floatRange.toString()) // 输出结果是描述本身:1.0..10.0
- 通过 until 关键字创建前开后闭的区间,包含开始值,不包含结束值
val intRangeExclusive = 1 until 10 //[1,10)
val charRangeExclusive = 'a' until 'z' //['a','z')
val longRangeExclusive = 100L until 10000L //[100L,10000L)
- 通过 downTo 关键字创建倒叙闭区间(区间值由大到小)
val intRangeReverse = 10 downTo 1 // [10,1]
val charRangeReverse = 'z' downTo 'a' // ['z','a']
val longRangeReverse = 10000L downTo 100L // [10000L,100L]
- 通过末尾追加 step 关键字设定区间的步长,只有离散型的才能添加step
//设定区间的步长
val intRangeWithStep = 1..10 step 2 //[1,10]步长为2 输出结果:1,3,5,7,9
区间的迭代
区间的迭代和数组是一样的(只有离散型的才能遍历)
val intRange = 1..10 //从1~10的闭区间
for (i in intRange) {
println(i)
}
intRange.forEach {
println(it)
}
区间的包含关系
不管是离散型还是不离散的都可以使用这个包含关系
val intRange = 1..10
val doubleRange = 2.0..10.0
if(3 in intRange){
println("3在区间intRange中")
}
if(11 !in intRange){
println("11不在区间intRange中")
}
val doubleRange = 2.0..10.0
if(2.0 in doubleRange){ // 符合条件
println("2.0在区间doubleRange中")
}