美文网首页
Kotlin之迭代事物

Kotlin之迭代事物

作者: 满天星爱我 | 来源:发表于2019-01-03 14:17 被阅读0次

    while循环

    Kotlinwhile循环和do-while循环,它们的语法和Java中的循环没什么区别:

    fun testWhile(){
    //先执行do一次,之后当while条件满足时继续执行do语句
    var flag : Boolean
    do {
        flag = true
        println("first run")
    }
    while (!flag)
    }
    

    迭代数字:区间和数列

    迭代左右都为闭区间

    fun testForLoop(){
        val oneToBai = 1..100 //一个起始值,一个结束值,使用 .. 运算符表示区间
        for (i in oneToBai){
            println("计数: $i")
        }
    }
    

    迭代带步长的数列

    fun testForLoop2(){
        for (i in 100 downTo 1){ //数列递减,步长为1 (可使用 step     指定步长)
            println("递减: $i")
        }
    }
    

    迭代不包含指定结束值的半闭合区间,使用until 函数可以创建这样的区间,但是仅支持递增

    fun testForLoop3(){
        val size = 10
        for (i in 0 until size){
            println("递增: $i")
        }
        //上面的for循环等同于
        for (i in 0 .. size-1){
            println("递增: $i")
        }
    }
    

    迭代Map

    使用map[key]读取值,并使用 map[key] = value 设置它们

    fun testMap(){
        val binaryReps = TreeMap<Char,String>()
        val a:Char = 'a'
        for (c in 'A'..'B'){
            val binary = Integer.toBinaryString(c.toInt()) //转成二进制
            binaryReps[c] = binary
            println("key: = $c" + " " + "value: ${binaryReps[c]}")
        }
        println(a)
    }
    

    使用 in 运算符来检查一个值是否在区间中,或者它的逆运算。!in 来检查这个值是否不在这个区间中

    fun isLetter(c:Char) = c in 'a'..'z' || c in 'A'..'Z'
    fun isNumber(c:Char) = c !in '0'..'9'
    

    in 运算符也可用在when表达式中

    fun recognize(c:Char) =
        when(c){
            in 'a'..'z' -> "It is a letter!"
            in '0'..'9' -> "It is a digit"
            else -> "I don't know..."
    }
    

    区间不仅限于字符,只要一个类实现了 java.lang.Comparable接口,就可以创建这种类型的对象的区间。如果是这样的对象,并不能列举出这个区间中的所有对象,但是仍然可以使用 in 运算符来检查一个其他的对象是否属于这个区间

    fun inObject(){
        println("Kotlin" in "Java".."Scale") //这里的字符串是按自然顺序比较的
    }
    

    in 同样适用于集合

    fun inSet(){
        println("Kotlin" in setOf("Java","Scale")) //这个集合不包含字符串Kotlin
    }

    相关文章

      网友评论

          本文标题:Kotlin之迭代事物

          本文链接:https://www.haomeiwen.com/subject/rlmfrqtx.html