kotlin 第四站

//Kotlin 循环控制

fun main(args : Array<String>){
//    For 循环
//    for 循环可以对任何提供迭代器(iterator)的对象进行遍历,语法如下:
    var list = listOf("abc","bcd","efg","hij")
    for(str in list) {
        println(str)
    }
    for((index,value) in list.withIndex()){
        println("the element at $index is $value")
    }
    for(i in list.indices){
        println(list[i])
    }
    println("-------while-------")
    var a = 5
    while (a > 0){
        println("a = ${a--}")
    }
    println("-----do while------")
    while( a < 6){
        println(" a = ${a++}")
    }
//    返回和跳转
//    Kotlin 有三种结构化跳转表达式:
//    return。默认从最直接包围它的函数或者匿名函数返回。
//    break。终止最直接包围它的循环。
//    continue。继续下一次最直接包围它的循环。
//    在循环中 Kotlin 支持传统的 break  continue 操作符。
    (1..10)
            .filter { it != 3 }
            .takeWhile { it <= 8 }
            .forEach { println("i = $it") }
    foo()
    foo1()
    println(foo2(2,3))
}
//标签处返回
//Kotlin 有函数字面量、局部函数和对象表达式。因此 Kotlin 的函数可以被嵌套。
//标签限制的 return 允许我们从外层函数返回。
//最重要的一个用途就是从 lambda 表达式中返回。回想一下我们这么写的时候:
fun foo(){
    (1..10).forEach{
        if(it == 6)
            return
        println("it = $it")
    }
    println("function is end")
}
fun foo1(){
    (1..10).forEach abc@{
        if(it == 6)
            return@abc
        println("it = $it")
    }
    println("function is end")
}
fun foo2(x:Int ,y :Int):Int{
    abc@if(x<y) {
//        当要返一个回值的时候,解析器优先选用标签限制的 return,即
//        意为"从标签 @a 返回 1",而不是"返回一个标签标注的表达式 (@a 1)"        return@abc 1
    }
    return 2
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值