测试环境:
一、 while 循环和 do while 与 java 中的没有区别,就不再记录了
二、for 循环
1. 在讲循环之前必须要先说下区间的概念,Kotlin 为了代替 java 中最基本的 for 循环条件,出现了区间的概念,使用 .. 表示区间,
1.1 数字区间
//定义一个区间变量,表示 是 1 到 10 ,包含开头和结尾
val num = 1..10
for (i in 1..10) {
//打印 1 到 10
println(i);
}
for (i in 4 downTo 1) print(i) // 输出“4321”
//如果正序 + 3 ,如果倒序 - 3,间隔 3
for (i in 1..10 step 3) {
//打印结果为:1,4,7,10
println(i);
}
//循环条件 1 - 9 不包含 10
for (i in 1 until 10) {
println(i);
}
1.2 字符区间,与数字区间的用法一致,只是数字变成了字符,但是字符的大小写需要区分
for (i in 'A'..'F') {
}
2. for 循环遍历 集合
2.1 list 集合
//Mutable开头的表示可以对集合进行操作,如改变数据等
val numbers: MutableList<Int> = mutableListOf()
numbers.add(1)
numbers.add(2)
numbers.add(3)
numbers.add(4)
//需要用到角标的遍历方式 ,number 代表角标
for (number in numbers.indices) {
println(numbers[number])
}
//不需要用到角标, number 代表 集合中的元素
for (number in numbers) {
println(number)
}
//不需要用到角标, it 代表 集合中的元素
numbers.forEach {
println(it)
}
//这种遍历方式可以拿到下b标,也可以拿到数据
for ((index, element) in numbers.withIndex()) {
println("$index = $element")
}
//numbersList 跟随着 numbers 变化,不管numbers 如何操作,numbersList 最终结果肯定与 numbers 一样
val numbersList: List<Int> = numbers
numbers.add(5)
println(numbersList.size)
}
2. set 集合 和 list 集合 的遍历方式一样
3. map 集合
val mutableMapOf = mutableMapOf<Int, String>()
//拿到 key value
for (mutableEntry in mutableMapOf) {
val key = mutableEntry.key
val value = mutableEntry.value
}
//拿到 key value
mutableMapOf.forEach {
val key = it.key
val value = it.value
}
//拿到 key value
for ((key, value) in mutableMapOf) {
println("$key = $value")
}