kotlin的迴圈使用

醉過才知酒濃發表於2018-12-14

kotlin的迴圈使用


1.For迴圈

在kotlin中也有for迴圈但是和我們在Java中的是用是不一樣的 在Java我們最常見的使用:

Java程式碼
for(int i=0 ; i < list.size() ; i++){
//...
}
複製程式碼

但是在kotlin中 這樣使用時錯誤的 因為在kotlin中不能這樣使用。 在kotlin中可以是用區間表示式來完成以上的功能 如下:

kotlin程式碼
for(i in 0..list.size){
//..
}
  
for(i in 0..10){
//..
}
for (i in 0 until 10){
//..
}
在這裡 until 是和".."是等價的 
複製程式碼

這樣就可以完成以上功能了 這是從0到list.size迭代。 在kotlin中不只可以從低到高的迭代也可以從高到低迭代 如下:

kotlin程式碼
for(i in 10 downTo 0){
//...
}
複製程式碼

這段程式碼是從10 到0 的迭代 在kotlin中不只可以這樣 還可以設定每次迭代的間隔 如下:

kotlin程式碼
for(i in 0..20 step 2){
    print(i)
}
列印結果為:02468101214161820
複製程式碼

可以看出 每次迭代都加了2

在kotlin中還專門為我們提供了一個迴圈方法“repeat()” 使用方法如下:

  repeat(10){
    print(it)
}
列印結果:0123456789
複製程式碼

這個方法提供了一個迴圈 通過檢視原始碼發現這個方法你面實現是 一個for迴圈 原始碼如下:

public inline fun repeat(times: Int, action: (Int) -> Unit) {
contract { callsInPlace(action) }

for (index in 0 until times) {
    action(index)
}
}
複製程式碼

可以看到這就是封裝了一個for迴圈。

在kotlin中 for迴圈可以對任何提供了迭代器(iterator)的物件進行遍歷,這相當於C#這樣的語言中的foreach迴圈。語法如下:

for(item in collection) print(item)
或
for(item:Int in Ints){
//...
}
複製程式碼

如上所述,for可以迴圈遍歷任何提供了迭代器的物件。即:

  • 有一個成員函式或擴充套件函式iterator(),它的返回型別;
  • 有一個成員函式或擴充套件函式next();
  • 有一個成員函式或擴充套件函式hasNext()返回Boolean.

這三個函式都需要標記 operator

2.while 迴圈

在kotlin中 while迴圈和在Java中是一樣的 如下:

while(x>0){
 x--
}

do{
y++
}while(y>10)
複製程式碼

相關文章