Kotlin基础之迭代事物:while循环和for循环

Kotlin的while循环和Java完全一样

1.while循环

Kotlin中有while循环和do while循环

        //condition 为true 执行循环体
        while (condition){

        }
        //循环体第一次会无条件执行,此后,当condition为true时才执行
        do{

        }while (condition)


2.迭代数字:区间和数列

Kotlin中使用..运算符来表示区间,迭代区间中所有的值,这样的区间称为数列


        for (i in 1..10) {
            Log.i("zhoujian", "i=" + i);
        }

迭代1..10  左右区间都包含

  for(i in 0 until 8 step 2){
       Log.i("zhoujian", "i=" + i);
  }

 until包含左边,不包含右边 

05-16 19:31:17.388 32034-32034/com.zhoujian.kotlindemo I/zhoujian: i=0
05-16 19:31:17.388 32034-32034/com.zhoujian.kotlindemo I/zhoujian: i=2
05-16 19:31:17.388 32034-32034/com.zhoujian.kotlindemo I/zhoujian: i=4
05-16 19:31:17.388 32034-32034/com.zhoujian.kotlindemo I/zhoujian: i=6
        for(i in 8 downTo 0 step 2){
            Log.i("zhoujian", "i=" + i);
        }

 downTo 左右区间都包含

05-16 19:34:41.301 32726-32726/com.zhoujian.kotlindemo I/zhoujian: i=8
05-16 19:34:41.301 32726-32726/com.zhoujian.kotlindemo I/zhoujian: i=6
05-16 19:34:41.301 32726-32726/com.zhoujian.kotlindemo I/zhoujian: i=4
05-16 19:34:41.301 32726-32726/com.zhoujian.kotlindemo I/zhoujian: i=2
05-16 19:34:41.301 32726-32726/com.zhoujian.kotlindemo I/zhoujian: i=0

3.map和list

二种创建map的方式,一种to,一种Pair

        //第一种创建map的方式
        var firstMap: HashMap<Int, String> = hashMapOf(1 to "one", 2 to "two")
        //第二种创建map的方式
        var secondMap: HashMap<Int, String> = hashMapOf(Pair(1, "one"), Pair(2, "two"))

遍历map的三种方式

        //第一种遍历方式
        for (item in firstMap) {
            Log.i("zhoujian", "key=" + item.key);
            Log.i("zhoujian", "value=" + item.value);
        }
        //第二种遍历方式
        val iterator = firstMap.iterator()
        while (iterator.hasNext()) {
            val item = iterator.next()
            Log.i("zhoujian", "key=" + item.key);
            Log.i("zhoujian", "value=" + item.value);
        }
        //第三种遍历方式
        firstMap.forEach { (key, value) ->
            Log.i("zhoujian", "key=" + key);
            Log.i("zhoujian", "value=" + value);
        }

打印结果:

05-16 19:47:47.640 4156-4156/com.zhoujian.kotlindemo I/zhoujian: key=1
05-16 19:47:47.640 4156-4156/com.zhoujian.kotlindemo I/zhoujian: value=one
05-16 19:47:47.640 4156-4156/com.zhoujian.kotlindemo I/zhoujian: key=2
05-16 19:47:47.640 4156-4156/com.zhoujian.kotlindemo I/zhoujian: value=two

  创建list

var lists = listOf<String>("one", "two", "three")

三种遍历集合的方式

        for (item in lists) {
            Log.i("zhoujian", "item=" + item);
        }
        val iterator = lists.iterator()
        while (iterator.hasNext()) {
            val item = iterator.next()
            Log.i("zhoujian", "item=" + item);
        }
        lists.forEach { item ->
            Log.i("zhoujian", "item=" + item);
        }

打印结果:

05-16 19:58:39.388 6753-6753/com.zhoujian.kotlindemo I/zhoujian: item=one
05-16 19:58:39.388 6753-6753/com.zhoujian.kotlindemo I/zhoujian: item=two
05-16 19:58:39.388 6753-6753/com.zhoujian.kotlindemo I/zhoujian: item=three

4. 使用in检查集合和区间的成员

kotlin中使用in来检查一个值是否在区间中,或者!in 来检查一个值是否不在区间中


    fun isLatter(c:Char)=c in 'a'..'z' || c in 'A'.. 'Z'

    fun isNotDigit(c:Char)= c !in '0'..'9'
2019-05-18 14:07:31.091 20639-20639/? I/zhoujian: isLatter=true
2019-05-18 14:07:31.091 20639-20639/? I/zhoujian: isNotDigit=true

用in检查作为when分支

 fun recognize(c: Char) = when (c) {
        in '0'..'9' -> "是个数字"
        in 'a'..'z', in 'A'..'Z' -> "是个字母"
        else -> "我也不知道是啥!"
    }
发布了272 篇原创文章 · 获赞 68 · 访问量 40万+

猜你喜欢

转载自blog.csdn.net/u014005316/article/details/90214624
今日推荐