目录
1、方式一:点点循环递增
2、方式二:until循环递增
3、方式三:downTo循环递减
4、方式四:step 循环间隔
5、方式五:repeat重复循环
6、方式六:list遍历循环
7、方式七:list的解构遍历循环
1、方式一:点点循环递增
.. 代表从0到10的递增,包含10
/*** 1、这个循环的字面意思就是:i 从 0 到 10 循环递增,.. 就是对0到10区间内的int值的简写*/for (i in 0..10){println("i=$i")}
//输出结果
i=0
i=1
i=2
i=3
i=4
i=5
i=6
i=7
i=8
i=9
i=10
2、方式二:until循环递增
until代表着 从0 到10为止的区间,意思是不包含10(注意与方式一的区别)
for (j in 0 until 10){println("j=$j")}//输出结果
j=0
j=1
j=2
j=3
j=4
j=5
j=6
j=7
j=8
j=9
3、方式三:downTo循环递减
downTo代表了从10到0的递减,包含10 和 0 的输出
注意:递减循环不能使用点点和until ,否则不会有任何的输出
/*** 3、downTo 代表的意思就是递减*/for (k in 10 downTo 0){println("k=$k")}
//输出结果
k=10
k=9
k=8
k=7
k=6
k=5
k=4
k=3
k=2
k=1
k=0//错误写法for (e in 10 until 0){println("error=$e")}for (e in 10 .. 0){println("error=$e")}
4、方式四:step 循环间隔
step代表循环的间隔大小
注意:这里还是需要与until的区分,until是不包含10的
/*** step 的意思就是递增(递减)的间隔大小*/for (l in 0..10 step 2){println("l=$l")}
//输出结果
l=0
l=2
l=4
l=6
l=8
l=10
5、方式五:repeat重复循环
repeat(count:Int) 一个高阶的循环函数,count代表循环的次数,在函数内,it代表到第几次
注意:it是从0开始计数的
repeat(10){println("it=$it")}
//输出结果
it=0
it=1
it=2
it=3
it=4
it=5
it=6
it=7
it=8
it=9
6、方式六:list遍历循环
这里其实就是对..和until的简写,因为list就代表了0到10的区间
val list= arrayListOf<String>("a","b","c","d")for (str in list ){println("str=$str")}
//输出结果
str=a
str=b
str=c
str=d
7、方式七:list的解构遍历循环
解构在Kotlin-解构中有详细讲解
for ((index,str) in list.withIndex()){println("第${index}个的元素是$str")}
//输出结果
第0个的元素是a
第1个的元素是b
第2个的元素是c
第3个的元素是d
8、点点的其他作用
点点是一个范围表达式rangTo()的重载操作符。它除了上面表达int类型的区间以外,还能表示 字母的区间。
fun main() {val isTest1= "d" in "a".."d"val isTest2= "d" in "a".."c"println("isTest1=$isTest1")println("isTest2=$isTest2")
}
//输出结果
isTest1=true
isTest2=false
9、in 的其他作用
in除了上面遍历一个集合的作用以外,还能用来做集合包含的判断作用。
fun main() {val isTest1= "d" in "a".."d"val isTest2= "d" in "a".."c"val isTest3= "a" in listOf("a","z")val isTest4= "a" !in listOf("b","z")val isTest5= "zhang" in "abc".."xyz"val isTest6= "li" in "abc".."xyz"println("isTest1=$isTest1")println("isTest2=$isTest2")println("isTest3=$isTest3")println("isTest4=$isTest4")println("isTest5=$isTest5")println("isTest6=$isTest6")
}
//输出结果
isTest1=true
isTest2=false
isTest3=true
isTest4=true
isTest5=false
isTest6=true