2.4 迭代事物: while循环 和 for循环

2.4.1 while循环

Kotlin有while循环和do-while循环,他们的语法和Java中相应的循环没有任何区别

2.4.2 迭代数字:区间和数列

在java中for循环,是先初始化变量,再循环中每一步更新它的值,并在满足某个限制条件时退出循环。为了替代这种最常见的循环用法,Kotlin使用了区间的概念

区间本质上就是两个值之间的间隔,这两个值通常是数字:一个起始值,一个结束值。使用 .. 运算符来表示区间:

val oneToTen = 1..10

注意Kotlin的区间是包含的或者闭合的,使用 until 函数可以创建结束值得半闭合区间

打印1到100的值

for (i in 1..100) {

println(i)

}

倒序打印,并且只打印偶数

for (i in 100 downTo 1 step 2) {

println(i)

}

2.4.3 迭代map、list集合

val binaryReps = TreeMap<Char,String>()

for (c in 'A'..'F'){

val binary = Integer.toBinaryString(c.toInt())

binaryReps[c] = binary

}

for ((letter,binary) in binaryReps){

println("$letter = $binary")

}

》》》

val list = arrayListOf<String>("a","b","c")

for ((index,element) in list.withIndex()){ //迭代集合时使用下标

println("$index:$element")

}

2.4.4 使用 "in" 检查集合和区间的成员

使用in运算符来检查一个值是否在区间中,或者它的逆运算,!n,来检查这个值是否不在区间中。

fun recognize(c: Char) =

when (c) {

in '0'..'9' -> "It's a diglt!"

in 'a'..'z', in 'A'..'Z' -> "it's a letter"

else -> "I don't know"

}
println("Kotlin" in "Java".."Scala")

这里字符串比较是按字母表顺序进行比较,因为String实现了Comparable

println("Kotlin" in setOf<String>("Java","Scala")) // in检查也同样适用于集合

猜你喜欢

转载自blog.csdn.net/cai784921129/article/details/81317947
今日推荐