Wazing


无醇酒美人,不愿来此人间,无快剑挚友,不愿老此江湖。


Kotlin多层循环跳出

​ 在Java中,使用break可以跳出循环,默认情况下是跳出最近一层的循环,假如我们要跳出多层循环怎么办呢,Java替我们已经做好了这一点,就是用 循环标签 :即是对某个循环定义一个名字,然后在 break 后面加上这个名字,当符合 break 条件时,程序就会跳到规定的循环。

out:for (int i = 0; i < 3; i++) {
    System.out.println("i = " + i);
    for (int j = 0; j < 3; j++) {
        System.out.println("--->>> j = " + j);
        if (j == 1) break out;
    }
}

// 运行结果:
i = 0
--->>> j = 0
--->>> j = 1

out: 相当于一个循环标签,在需要跳出该层循环的时候,break 循环标签即可。Kotlin也是类似

out@ for (i in 0..2) {
    println("i = $i")
    for (j in 0..2) {
        println("--->>> j = $j")
        if (j == 1) break@out
    }
}
// 运行结果:
i = 0
--->>> j = 0
--->>> j = 1

相对于Java也就是循环标签改变了,out@

同样,在for循环的continue关键字中,使用循环标签也是可以的

out@ for (i in 0..2) {
    println("i = $i")
    outj@ for (j in 0..2) {
        println("--->>> j = $j")
        for (k in 0..2){
            if (k == 1) continue@outj
            println("------>>>>>> k = $k")
        }
    }
}
// 输出结果:
i = 0
--->>> j = 0
------>>>>>> k = 0
--->>> j = 1
------>>>>>> k = 0
--->>> j = 2
------>>>>>> k = 0
i = 1
--->>> j = 0
------>>>>>> k = 0
--->>> j = 1
------>>>>>> k = 0
--->>> j = 2
------>>>>>> k = 0
i = 2
--->>> j = 0
------>>>>>> k = 0
--->>> j = 1
------>>>>>> k = 0
--->>> j = 2
------>>>>>> k = 0

结果有点长,但是可以看到最内层for也就是k只输出:

——»»» k = 0

最近的文章

搭建Flutter开发环境

[TOC]前言 安装环境 macOS安装获取Flutter SDK官网:https://github.com/flutter/flutter克隆到本地 git clone https://github.com/flutter/flutter.git设置环境变量# Flutterexport PATH=$PATH:~/Library/Android/flutter/bin:$PATH// 刷新当前终端窗口source ~/.bash_profile~ 表示用户目录/Library/Andr...…

Flutter继续阅读
更早的文章

如何移除你的Kotlin代码中所有!!

[TOC]原标题:How to remove all !! from your Kotlin code原文地址:https://android.jlelse.eu/how-to-remove-all-from-your-kotlin-code-87dc2c9767fb原文作者:David Vávra作者本篇源码地址:https://gist.github.com/davidvavra如何移除你的Kotlin代码中所有!!空安全特性是Kotlin语言最好语法特性之一。它让你在语言层面来考虑可...…

Android Kotlin继续阅读