发布于 2年前

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在此处是可见的
©2020 edoou.com   京ICP备16001874号-3