大家好,我是青空。今天给大家介绍kotlin循环控制。
文末可领取20+份大厂面试题
kotlin 中循环控制主要是 for 和 while 两种方式。
for 循环
iterator迭代器
for (item: Int in ints) {
// ……
}
索引遍历
for (i in array.indices) {
print(array[i])
}
有点 类似 for (int i = 0; i < sum; i ++)
库函数withIndex
for ((index, value) in array.withIndex()) {
println("the element at $index is $value")
}
对简化for(int i = 0; i < sum; i ++) 做了升级,直接取出了值。
注意
"在区间上遍历"会编译成优化的实现而不会创建额外对象
可以循环遍历任何提供了迭代器的对象
循环遍历的条件
有一个成员函数或者扩展 iterator()函数 ,有一个成员函数或者扩展函数 next(),并且有一个成员函数或者扩展函数 hasNext() 返回 Boolean。
while 与 do…while 循环
与java一样
返回和跳转
与java一样
Break 和 Continue 标签
任何表达式都可以用标签(label)来标记
标签的格式为标识符后跟 @ 符号
abc@、 fooBar@ 都是有效的标签
loop@ for (i in 1..100) {
for (j in 1..100) {
if (……) break@loop
}
}
在表达式前,➕标签
break 跳转的位置
到刚好位于该标签指定的循环后面的执行点
continue 继续标签指定的循环的下一次迭代
标签处返回
标签限制的 return 允许我们从外层函数返回
范例一
fun foo() {
ints.forEach {
if (it == 0) return
print(it)
}
}
return是从 包围它的 函数foo()返回
范例二
fun foo() {
ints.forEach lit@ {
if (it == 0) return@lit
print(it)
}
}
这里从forEach中返回。
范例三 自带隐式标签 与接受该lambda的函数同名
fun foo() {
ints.forEach {
if (it == 0) return@forEach
print(it)
}
}
范例四 返回值: 1
fun foo() {
abc@ ints.forEach(fun(value: Int) {
if (value == 0) return@abc 1
print(value)
})
}
从标签@abc返回1
最近又赶上跳槽的高峰期,好多粉丝,都问我有没有最新大厂面试题,我连日加班好多天,终于整理好了,1000+ 道,20多份大厂面试题大全,我会持续更新中!公众号回复【面试题】即可获取。