Kotlin 中的迴圈全解

風吹過wu發表於2019-01-11

1、普通for迴圈

for (i in 0..9) {
       println(i)
   }
for (i in 0 until 9) {
    println(i)
   }
複製程式碼

注意

  • 0..9 指的是[0,9]這個集合,左右都是閉合的,0和9均包含
  • 0 until 9 指的是[0,9),左閉右開,包含0不包含9

2、集合的遍歷(這裡就用list舉例)

for迴圈遍歷

val list = listof<String>("泰國", "新加坡", "印度尼西亞")
for (item in list) {
    println(item)
}
複製程式碼

帶index遍歷

val list = listof<String>("泰國", "新加坡", "印度尼西亞")
for ((index, element) in list) {
    println("第$index個是$element")
}
複製程式碼

forEach

val list = listof<String>("泰國", "新加坡", "印度尼西亞")
list.forEach{
    print(it)// it指的是當前list遍歷的值
}
複製程式碼

While 迴圈

while和do-while迴圈和java保持一致。

while(condition) {
    do()
}

do {
    do()
} while(conditon)
複製程式碼

Repeat語法

可以用來取代for(i in 0..9) ,這樣簡單的重複操作

repeat(10) {
    println(it) //it這裡代表的是索引值
}
複製程式碼

跳躍語法

Kotlin中引入了標籤的概念,可以直接控制程式應該執行的程式碼是什麼。 標籤後面用@標明。

break, continue

loop@ for(i in 1..5){
    for(j in 6..9){
        if(j == 8) break@loop
    }
}
複製程式碼

這段程式碼中的break將會跳出帶有loop@標籤的迴圈。continue和break的用法一樣。最好自己實踐一下,將標籤打到不同的位置

return

fun foo() {
    ints.forEach lit@ {
        if (it == 0) return@lit
        print(it)
    }
}
複製程式碼
fun foo() {
    ints.forEach {
        if (it == 0) return@forEach
        print(it)
    }
}
複製程式碼

以上兩段return效果一樣。 還可以使用匿名函式直接返回值

fun foo() {
    ints.forEach(fun(value: Int) {
        if (value == 0) return
        print(value)
    })
}
複製程式碼

注意: return是用到fun中,也就是方法中的,break和continue是用在loop中的。這個可以自己測試一下。最好自己用程式碼跑一遍,可以加深印象!!!

來源:www.jianshu.com/p/61092a07f…

相關文章