Kotlin 笔记(六)——控制流 for 和 while 以及区间的概念

测试环境:

  • Kotlin 1.1.3

一、 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”
  • 按任意大于 1 的间隔迭代数字
  //如果正序 + 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 = 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 = numbers


        numbers.add(5)
        println(numbersList.size)

    }
2. set 集合 和 list 集合 的遍历方式一样
3. map 集合
 val mutableMapOf = mutableMapOf()
        //拿到 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")
        }

你可能感兴趣的:(Kotlin 笔记(六)——控制流 for 和 while 以及区间的概念)