- 一、for 语句
- 二、while 语句
- 三、do…while 语句
- 四、跳转语句(return、break、continue)
循环控制语句也是每门语言不可缺少的一部分,Java 中主要有两种循环语句:while 循环和 for 循环。Kotlin 循环其实几乎和 Java 一模一样。
一、for 语句- Kotlin废除了Java中的for(初始值;条件;增减步长)这个规则。但是Kotlin中对于for循环语句新增了其他的规则,来满足刚提到的规则。
- for循环提供迭代器用来遍历任何东西
- for循环数组被编译为一个基于索引的循环,它不会创建一个迭代器对象
1.1 新增的规则,去满足for(初始值;条件;增减步长)这个规则
- 递增
关键字:until 范围: until[n,m) => 即大于等于n,小于m
// 循环5次,且步长为1的递增
for (i in 0 until 5){
print("i => $i \t")
}
输出结果:
i => 0 i => 1 i => 2 i => 3 i => 4
- 递减
关键字:downTo 范围:downTo[n,m] => 即小于等于n,大于等于m ,n > m
// 循环5次,且步长为1的递减
for (i in 15 downTo 11){
print("i => $i \t")
}
输出结果:
i => 15 i => 14 i => 13 i => 12 i => 11
- 符号(’ … ') 表示递增的循环的另外一种操作
使用符号( ‘…’). 范围:…[n,m]=> 即大于等于n,小于等于m 和until的区别,一是简便性。二是范围的不同。
print("使用 符号`..`的打印结果\n")
for (i in 20 .. 25){
print("i => $i \t")
}
println()
print("使用until的打印结果\n")
for (i in 20 until 25){
print("i => $i \t")
}
输出结果:
使用 符号..
的打印结果 i => 20 i => 21 i => 22 i => 23 i => 24 i => 25
使用until的打印结果 i => 20 i => 21 i => 22 i => 23 i => 24
- 设置步长
关键字:step
for (i in 10 until 16 step 2){
print("i => $i \t")
}
输出结果:
i => 10 i => 12 i => 14
1.2 迭代
- for 循环提供一个迭代器用来遍历任何东西。
- for 循环数组被编译为一个基于索引的循环,它不会创建一个迭代器对象
- 遍历字符串
for (i in "abcdefg"){
print("i => $i \t")
}
输出结果:
i => a i => b i => c i => d i => e i => f i => g
- 遍历数组
var arrayListOne = arrayOf(10,20,30,40,50)
for (i in arrayListOne){
print("i => $i \t")
}
输出结果:
i => 10 i => 20 i => 30 i => 40 i => 50
- 使用数组的 indices 属性遍历
var arrayListTwo = arrayOf(1,3,5,7,9)
for (i in arrayListTwo.indices){
println("arrayListTwo[$i] => " + arrayListTwo[i])
}
输出结果:
arrayListTwo[0] => 1 arrayListTwo[1] => 3 arrayListTwo[2] => 5 arrayListTwo[3] => 7 arrayListTwo[4] => 9
- 使用数组的 withIndex() 方法遍历
var arrayListTwo = arrayOf(1,3,5,7,9)
for ((index,value) in arrayListTwo.withIndex()){
println("index => $index \t value => $value")
}
输出结果:
index => 0 value => 1 index => 1 value => 3 index => 2 value => 5 index => 3 value => 7 index => 4 value => 9
- 迭代器遍历
var arrayListThree = arrayOf(2,'a',3,false,9)
var iterator: Iterator = arrayListThree.iterator()
while (iterator.hasNext()){
println(iterator.next())
}
输出结果:
2 a 3 false 9
- foreach 遍历
val array = arrayOf(2,'a',3,false,9)
array.forEach { println(it) }
输出结果:
2 a 3 false 9
二、while 语句 var num = 5
var count = 1
while (num 5 循环了1 次 num => 6 循环了2 次 num => 7 循环了3 次 num => 8 循环了4 次 num => 9 循环了5 次
三、do…while 语句
var num = 5
var count = 1
do {
println("num => $num")
println("循环了$count 次")
count++
num++
}while (num 5 循环了1 次 num => 6 循环了2 次 num => 7 循环了3 次 num => 8 循环了4 次 num => 9 循环了5 次
注意:do{…}while 最少执行一次,while(exp) 可能一次也不执行,这点也是和Java相同的
四、跳转语句(return、break、continue)
1. return语句
默认情况下,从最近的封闭函数或匿名函数返回。
例:
fun returnExample(){
var str: String = ""
if (str.isBlank()){
println("我退出了该方法")
return
}
}
2. break语句
作用:终止最近的闭合循环。
var count: Int = 1
for (i in 1 until 10){
if (i == 5){
println("我在第$i 次退出了循环")
break
}
count++
}
println("我循环了多少次:count => $count")
输出结果:
我在第5 次退出了循环 我循环了多少次:count => 5
3. continue语句
前进到最近的封闭循环的下一个步骤(迭代)。
for (i in 1 until 10){
if (i == 5){
println("我跳过了第$i 次循环")
continue
}
println("i => $i")
}
输出结果:
i => 1 i => 2 i => 3 i => 4 我跳过了第5 次循环 i => 6 i => 7 i => 8 i => 9