Kotlin 中的 Range 有 CharRange
、LongRange
、IntRange
range 范围
CharRange
、LongRange
、IntRange
范围区间
var a:IntRange= 50..100
for (i in a){ //遍历50~100的分数分别在什么位置
print("成绩:$i")
if(i in 1..59){ //1~59 范围
println(" 不及格")
}else if(i in 60..69){ //60~69
println(" 及格")
}else if(i in 70..79){ //70~79 范围
println(" 良")
}else if(i in 80..89){ //80~89 范围
println(" 好")
}else if(i in 90..100){ //90~100 范围
println(" 优")
}else if(i !in 1..100){ //1~100 范围
println(" 错误分数")
}
}
var b:IntRange= 50 until 100
for (i in b){ //遍历50~100的分数分别在什么位置
print("成绩:$i")
if(i in 1 until 60){ //1~59 范围
println(" 不及格")
}else if(i in 60 until 70){ //60~69
println(" 及格")
}else if(i in 70 until 80){ //70~79 范围
println(" 良")
}else if(i in 80 until 90){ //80~89 范围
println(" 好")
}else if(i in 90 until 100){ //90~100 范围
println(" 优")
}else if(i !in 1 until 100){ //1~100 范围
println(" 错误分数")
}
}
对比两次结果可以看到
.. 这个符号为闭区间符号
until 这个为半封闭区间
好,我来做一个临界点的测试,看看区间
var b:IntRange = 1..50
val iss: Boolean = b.contains(51) // false
val isn: Boolean = 51 in b // false
val isc: Boolean = 50 in b // true
val isd: Boolean = b.contains(50) // true
println(iss)
println(isn)
println(isc)
println(isd)
我先定义了一个全封闭的区间
拿51与50代入去测试
发现返回
当51时,超出临界点的时候为false
当50时,刚好在临界点时为true
var c:IntRange = 1 until 50
val isg: Boolean = c.contains(50) // false
val ish: Boolean = 50 in c // false
val isj: Boolean = 49 in c // true
val isk: Boolean = c.contains(49) // true
println(isg)
println(ish)
println(isj)
println(isk)
当定义一个1~50半封闭的区间
我代入49~50时
发现返回
当值为50时,超出临界点 为false
当值为49时,在包含之中 为true
CharRange,LongRange就不讲了
var q:CharRange = 'a'..'z'
println(q)
var l:LongRange = 1..10000000000
println(l)