- kotlin中的循环主要是for,while,do...while,return ,break,continue
For循环
- 自动判断类型遍历
- 声明类型遍历
- 索引遍历一个数组或者一个 list
- 用库函数 withIndex遍历数组和list
var items = listOf("a", "b", "c")
/**
* 自动判断类型遍历
*/
for (item in items) println("item-->$item")
/**
* 声明类型遍历
*/
for (item: String in items) {
println("item1-->$item")
}
/**
* 索引遍历一个数组或者一个 list
*/
for (i in items.indices) {
println("indices-->at $i is ${items[i]}")
}
/**
* 用库函数 withIndex遍历数组和list
*/
for ((index,value) in items.withIndex())
{
println("the element at $index is $value")
}
while 与 do...while 循环
- while 和do...while 和java中的用法基本类似,do…while 循环和 while 循环相似,不同的是,do…while 循环至少会执行一次。
返回和跳转
- return。默认从最直接包围它的函数或者匿名函数返回。
- break。终止最直接包围它的循环。
- continue。继续下一次最直接包围它的循环。
//传统的continue和break
for (i in 1..10) {
if (i==3) continue // i 为 3 时跳过当前循环,继续下一次循环
println(i)
if (i>5) break // i 为 6 时 跳出循环
}
Break 和 Continue 标签
- 标签的格式为标识符后跟 @ 符号,例如:abc@、fooBar@都是有效的标签。 要为一个表达式加标签,我们只要在其前加标签即可,通常情况下使用隐式标签更方便。 该标签与接受该 lambda 的函数同名。
- 如果有多重循环,带标签的break会跳转出标签所指示的那一个循环。
- 如果有多重循环,带标签的continue会跳转到标签所指向的那个循环,进入该循环的下一次循环。
// break 跳转到刚好位于该标签指定的循环后面的执行点。
// continue继续标签指定的循环的下一次迭代。
loop@ for (i in 1..100) {
for (j in 1..100) {
if (……) break@loop
}
}
- 如果需要在返回的时候带有一个值:return@a 1