Kotlin基础教程-返回值和跳转

Returns and Jumps

和java类似,Kotlin中有3中跳转语句

  • return
  • break
  • continue

break和continue标签

我们可以给任何表达式起一个别名,kotlin称这个为标签。

拿之前的for循环语句举例

doctorq@for (index in array.indices) {
        println(index)
    }

我给这个for循环加了个标签,标签以@为后缀

doctorq@ for (i in 1..100) {
        doctorq2@ for (j in 1..100) {
            if (i > j) break@doctorq2

            if (i == 50) break@doctorq
        }
    }

标签的作用,可以使得跳转到的位置十分明确,不用再纠结在嵌套for循环中,有跳转到哪里的疑惑。而且也可以随意选择跳转到什么地方,比java的for循环方便多了。

return上的标签

在一些嵌套函数中,需要return返回一个值给外部的函数,这个时候就需要用到标签。特别是在lambda表达式中返回:

fun foo() {
    ints.forEach {
        if (it == 0) return
        print(it)
    }
}

上面的forEach语句,遇到0后,会直接返回。

这里写图片描述

如果想遇到0跳过,继续遍历下一个元素,这个时候无法使用continue

fun foo(array:Array<Int>) {
    array.forEach doctorq@{
        if (it == 0) return@doctorq
        println(it)
    }
}

这里写图片描述

也可以使用forEach作为标签名字

fun foo() {
    ints.forEach {
        if (it == 0) return@forEach
        print(it)
    }
}

我们也可以使用匿名函数代替lambda表达式,匿名函数中的return返回到匿名函数本身。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值