循环控制语句也是每门语言不可缺少的一部分,Java 中主要有两种循环语句:while 循环和 for 循环。Kotlin 循环其实几乎和 Java 一模一样。
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
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
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<Any> = arrayListThree.iterator()
while (iterator.hasNext()){
println(iterator.next())
}
输出结果:
2
a
3
false
9
val array = arrayOf(2,'a',3,false,9)
array.forEach { println(it) }
输出结果:
2
a
3
false
9
var num = 5
var count = 1
while (num < 10){
println("num => $num")
println("循环了$count 次")
count++
num++
}
输出结果:
num => 5
循环了1 次
num => 6
循环了2 次
num => 7
循环了3 次
num => 8
循环了4 次
num => 9
循环了5 次
var num = 5
var count = 1
do {
println("num => $num")
println("循环了$count 次")
count++
num++
}while (num < 10)
输出结果:
num => 5
循环了1 次
num => 6
循环了2 次
num => 7
循环了3 次
num => 8
循环了4 次
num => 9
循环了5 次
注意:do{…}while 最少执行一次,while(exp) 可能一次也不执行,这点也是和Java相同的
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