Kotlin:循环语句for与while
For语句
使用for语句做迭代需要满足:提供一个迭代器Iterator。
使用成员函数提供迭代器
如Array:
operator fun iterator(): Iterator<T>
注意:iterator()函数需要使用operator标记。
使用扩展函数提供迭代器
除了添加成员函数iterator提供迭代器外,也可以通过extension function来添加iterator()提供迭代器。
如String:
operator fun CharSequence.iterator(): CharIterator
注意:iterator()函数需要使用operator标记。
语法
for (item in collection) {
//do something
}
如果for的执行体里只有一行语句,可以省略大括号
for (item in collection) print(item)
应用
迭代字符串
val text = "Hello,World."
for(c in text)
println(c)
迭代数组
var arr = arrayOf("a","b","c","d")
for(item in arr)
println(item)
迭代数组索引及元素
var arr = arrayOf("a","b","c","d")
for((i, v) in arr.withIndex())
println("$i -> $v")
这里使用Array的withIndex()返回一个Iterable<IndexedValue<T>>,它包含了索引
While语句
while语句有两种用法:
while
while (x > 0) {
x--
}
do-while
do {
val y = retrieveData()
} while (y != null) //注意:y在此处是可见的