首发于公众号: DSGtalk1989
4.循环控制
-
break和continue标签
我们在kotlin中,通过
xxx@的方式,即任意字符串加@结尾的方式来定义循环标签,一般与for循环结合起来用,比如:loop1@ for (i in 1..20) { println("i $i") loop2@ for (j in 1..10) { println("j $j") if (j > 5) { break@loop1 } loop3@ for (k in 1..5) { println("k $k") if (k > 2) { continue@loop2 } } } }我们可以通过具体制定的条件来做
break或者是continue-
repeat方法重复执行几次
repeat(5){ i -> println("循环运行第${i+1}次。") } =======等同于 for(int i=0;i<5;i++)
-
-
标签返回
我们先来看一段如下的代码
fun test() { var array = arrayListOf(1,2,3) array.forEach { if(it == 1){ return } } }首先,
forEach后面直接跟大括号是个lambda表达式,如果直接在IDE中进行编辑的话,在lambda表达式中,如果直接输入return他会提示你需要直接return还是return@forEach实际上比较明显了,直接return是跳出整个方法体,而return@forEach只是跳出lambda表达式。同样的,我们可以直接在lambda的表达式大括号之前加上
xxx@来自定义跳转标签,或者直接不使用lambda,而在forEach后直接添加方法等等,均会有不同的情况。fun foo() { ints.forEach lit@ { if (it == 0) return@lit print(it) } } fun foo() { ints.forEach(fun(value: Int) { if (value == 0) return print(value) }) }注意一下,
return@a 1表示返回给a@这个lambda表达式1这个值。
Kotlin学习笔记之 13 基础操作符run、with、let、also、apply
