Kotlin 入门第五天:循环控制——For、while、for each、Loop

1、For 循环 代码示例:

首先生命了一个数组items,采用for 循环遍历这个数组并打印出来。

第二个for循环,打印的时候用到了 $ 引用,在字符串一节中(Kotlin 入门第四天:基本数据类型及其转换 —— 字符、bool、数组、位操作符)我们已经了解过。

//for 循环
    fun fOr() {
        val items = listOf("apple", "banana", "kiwi")
        for (item in items) {
            println(item)
        }
        for (index in items.indices) {
            println("item at $index is ${items[index]}")
        }
    }

输出结果为

I/System.out: apple
I/System.out: banana
I/System.out: kiwi
I/System.out: item at 0 is apple
I/System.out: item at 1 is banana
I/System.out: item at 2 is kiwi

2、While 循环控制

while 循环很好理解,跟java类似,分为 while,及 do while

两次循环,依次输出5,4,3,2,1

fun wHile() {
        println("while 的使用")
        var x = 5
        while (x > 0) {
            println(x--)
        }
        println("do ... while 的使用")
        var y = 5
        do {
            println(y--)
        } while (y > 0)
    }

3、break - continue 的循环控制

/**break continue*/
    fun bReak() {
        for (i in 1..10) {
            if (i == 3) continue
            println(i)
            if (i > 6) break
        }
    }

输出结果为

I/System.out: 1
I/System.out: 2
I/System.out: 4
I/System.out: 5
I/System.out: 6
I/System.out: 7

4、需要重点了解一下loop的使用,这里面通过@添加了标签

    /**loop*/
    fun lOop() {
        loop@ for (i in 1..10) {
            println("测试loop: $i")
            if (i > 6) break@loop //直接写break也可以,意味着跳出当前循环,break @loop 意味着,跳出标签处的循环
        }
    }

//直接写break,意味着跳出当前循环,break @loop 意味着,跳出标签处的循环

5、标签

/**标签*/
    fun foo() {
        print("测试 lambda 标签")
        var ints = intArrayOf(1,2,3)
        ints.forEach lit@{
            if (it == 0) return@lit
            print(it)
        }
    }

return@lit,意思是 将标签为lit的循环终止

6、lambda表达式里面的循环控制

这是我们这几天第一次出现并使用lambda表达式

 /** lambda 表达式*/
    fun lAmbda() {
        print("测试 lambda 表达式")
        var ints = intArrayOf(1,2,3)
        ints.forEach (fun(value: Int) {
            if (value == 0) return
            println(value)
        })
    }

我们可以将上述的循环进行一下结构上的拆分,以便于更好理解:

/** lambda 表达式*/
    fun lAmbda() {
        print("测试 lambda 表达式")
        var ints = intArrayOf(1,2,3)
        ints.forEach {
            test(it)
        }
    }

fun test(value: Int) {
        if (value == 0) return
        println(value)
    }

lAmbda() 函数执行的结果跟 上一段lAmbda函数是一致的。结果如下

 I/System.out: 测试 lambda 表达式1
I/System.out: 2
I/System.out: 3

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值