Kotlin中的循环

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/zull_kos_mos/article/details/89670229

1.普通for循环

  • 0…9 等于 [0,9]
  • 0 until 9 等于[0,9)
for (i in 0..9) {
       println(i)
}

for (i in 0 until 9) {
    println(i)
}

2.集合

  • for循环遍历
val list = listof<String>("aaa", "bbb", "ccc")
for (item in list) {
    println(item)
}
  • 带index遍历

用下标遍历

val list = listOf<String>("aaa", "bbb", "ccc")
for (index in list.indices) {
    println("$index = ${list[index]}")
}
val list = listOf<String>("aaa", "bbb", "ccc")
for ((index, element) in list.withIndex()) {
    println("$index = $element")
}
  • forEach
val list = listOf<String>("aaa", "bbb", "ccc")
list.forEach{
    print(it)// it指的是当前list遍历的值
}

3.While 循环

while和do-while循环和java保持一致。

while(condition) {
    //doSth
}

do {
   //doSth
} while(conditon)

4.Repeat语法

重复10遍–》等同于for(i in 0…9)

repeat(10) {
    print(it) //it这里代表的是索引值
}

//打印:0123456789

5.打断循环

5.1.break

跳出到标签位置(j==2时,同时跳出i,j两个循环

print("开始循环\n")
jump@ for (i in 1..3) {
    for (j in 1..3) {
        if (j == 2) {
            break@jump
        }
        print("i=$i,j=$j  ")
    }
}
print("\n结束循环")

打印:
开始循环
i=1,j=1  
结束循环

跳出当前循环(j==2时,跳出j循环,继续i循环

print("开始循环\n")
for (i in 1..3) {
    for (j in 1..3) {
        if (j == 2) {
            break
        }
        print("i=$i,j=$j  ")
    }
}
print("\n结束循环")

打印:
开始循环
i=1,j=1  i=2,j=1  i=3,j=1  
结束循环

5.2.continue

满足条件时,结束当前循环,到标签出继续循环(j==2时,跳过j循环,这里效果和break相同)

print("开始循环\n")
jump@ for (i in 1..3) {
    for (j in 1..3) {
        if (j == 2) {
            continue@jump
        }
        print("i=$i,j=$j  ")
    }
}
print("\n结束循环")

打印:
开始循环
i=1,j=1  i=2,j=1  i=3,j=1  
结束循环

满足条件时跳过当前循环(j==2时,跳过j循环,就当没发生过)

print("开始循环\n")
jump@ for (i in 1..3) {
    for (j in 1..3) {
        if (j == 2) {
            continue
        }
        print("i=$i,j=$j  ")
    }
}
print("\n结束循环")

打印:
开始循环
i=1,j=1  i=1,j=3  i=2,j=1  i=2,j=3  i=3,j=1  i=3,j=3  
结束循环

5.3.return

直接退出当前方法

猜你喜欢

转载自blog.csdn.net/zull_kos_mos/article/details/89670229