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)
複製程式碼