思维导图|kotlin 循环控制

大家好,我是青空。今天给大家介绍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多份大厂面试题大全,我会持续更新中!公众号回复【面试题】即可获取。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值