Kotlin流程控制-控制循环结构
2019-07-02 本文已影响11人
程序员丶星霖
Kotlin提供了continue和break来控制循环结构。除此之外,使用return可以结束整个方法。
一、使用break结束循环
需要在某种条件出现时强行中止循环,而不是等到循环条件为false时才退出循环,可以使用break来完成此功能。
break用于完全结束一个循环,跳出循环体。
for (i in 0..10) {
println("i的值是:${i}")
if (i == 2) {
//结束循环
break
}
}
输出结果:
i的值是:0
i的值是:1
i的值是:2
使用break语句不仅可以结束其所在的循环,还可以直接结束其外层循环。需要在break后紧跟一个标签,用于标识一个外层循环。
Kotlin中的标签就是一个紧跟着@的标识符。Kotlin中的标签只有放在循环语句或switch语句之前才起作用。
//外层循环
outer@ for (i in 0..10) {
for (j in 0 until 3) {
println("i的值为:${i},j的值为:${j}")
if (j == 1) {
//跳出outer标签所标识的循环
break@outer
}
}
}
输出结果:
i的值为:0,j的值为:0
i的值为:0,j的值为:1
break后的标签必须是一个有效的标签,即这个标签必须在break语句所在的循环之前定义,或在其所在循环的外层循环之前定义。
二、使用continue忽略本次循环的剩下语句
continue和break有点类似,区别是:
- continue只是忽略本次循环的剩下语句,接着开始下一次循环,并不会中止循环;
- break则是完全中止循环本身。
for (i in 0 until 3) {
println("i的值是${i}")
if (i == 1) {
//忽略本次循环的剩下语句
continue
}
println("continue后的输出语句")
}
输出结果:
i的值是0
continue后的输出语句
i的值是1
i的值是2
continue后的输出语句
continue也可以紧跟一个标签,用于直接跳过标签所标识循环的档次循环剩下语句,重新开始下一次循环。
//外层循环
outer@ for (i in 0 until 5) {
//内层循环
for (j in 0 until 3) {
println("i的值为:${i},j的值为:${j}")
if (j == 1) {
//忽略outer标签所指定的循环中档次循环剩下的语句
continue@outer
}
}
}
输出结果:
i的值为:0,j的值为:0
i的值为:0,j的值为:1
i的值为:1,j的值为:0
i的值为:1,j的值为:1
i的值为:2,j的值为:0
i的值为:2,j的值为:1
i的值为:3,j的值为:0
i的值为:3,j的值为:1
i的值为:4,j的值为:0
i的值为:4,j的值为:1
三、使用return结束方法
return用于从最直接包围它的方法、函数或者匿名函数返回。
当函数或方法执行到一条return语句时,这个函数或方法将被结束。
fun main(args: Array<String>) {
test()
}
fun test(){
for (i in 0 until 10) {
println("i的值是:${i}")
if (i == 1) {
return
}
println("return后的输出语句")
}
}
输出结果:
i的值是:0
return后的输出语句
i的值是:1
return并不是专门用于控制循环结构的关键字,但通过return语句确实可以结束一个循环。
与continue和break不同的是,return直接结束整个函数或方法,而不管return处于多少层循环之内。
学海无涯苦作舟
