您当前的位置: 首页 >  kotlin
  • 0浏览

    0关注

    674博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

kotlin跳出for循环

沙漠一只雕得儿得儿 发布时间:2020-12-23 20:18:49 ,浏览量:0

效果一:数组的forEach中直接retrun
    private fun test0() {
        val arr = intArrayOf(1,2,3,4,5,6,7)
        arr.forEach {
            if (it == 4) return
            Log.d(TAG, "value:$it")
        }
        Log.d(TAG, "this is End")
    }

打印结果:

可以看到程序程序在遍历到4的时候就退出了方法,而且this is End也没有打印

我若果只想在数组遍历到4的时候跳出forEach,forEeach后面的语句还继续执行,实现类似java中的continue,那么应该怎么做呢

效果二:continue
    private fun test() {
        val arr = intArrayOf(1, 2, 3, 4, 5, 6, 7)
        arr.forEach continuing@{
            if (it == 4) return@continuing
            Log.d(TAG, "value:$it")
        }
        Log.d(TAG, "this is End")
    }

打印结果:

可以看到在遍历到4的时候直接跳出了此次循环,假设当遍历到4的时候,想要直接跳出遍历循环,实现类似java中的break的作用,那么应该怎么做呢

效果三:break
    private fun test2() {
        val arr = intArrayOf(1, 2, 3, 4, 5, 6, 7)
        run breaking@{

            arr.forEach continuing@{
                if (it == 4) return@breaking
                Log.d(TAG, "value:$it")
            }
            Log.d(TAG, "this is breaking")
        }
        Log.d(TAG, "this is End")
    }

打印结果:

可以看到的是在数据遍历到4的时候,直接就跳出了循环体,继续运行下面的代码,实现了在kotlin的forEach中类似java的break的效果。

四、breakreturncontinue
fun testBRC(){
        //break,return continue

 //1、return 返回最近一层的函数,或匿名函数
        var str = ""
        //不同于java,kotlin中函数内可以定义函数
        fun aa(){
            if (str.isEmpty()){
                println("str empty")
                return//这里就return出aa函数了,后续文章会讲解@label用法
            }
        }
        aa()//调用aa函数,

        //2、终止最近的一层循环
        for (i in 0..5){
            println("i 是啥$i")
            if (i==2){
                print("=2时候出去了")
                break//=2的时候循环终止,到不了5
            }
        }

        //3、continue,在循环中,终止本次的循环后操作,进入下一圈
        for (i in 0..5){
            if (i==2){
                println("=2时候下一个了,所以出不来i=2")
                continue//=2的时候循环终止,到不了5
            }
            println("i =$i")
        }
    }

 

 

 

 

关注
打赏
1657159701
查看更多评论
立即登录/注册

微信扫码登录

0.0380s