美文网首页
四、kotlin控制流 循环迭代

四、kotlin控制流 循环迭代

作者: 菜鸟七日游 | 来源:发表于2018-07-26 16:50 被阅读11次

    1,控制流使用方法

        var i = 1
        if(i < 2){
            println("i小于2")
        }else{
            println("i不小于2")
        }
    

    在 Kotlin 中,if 是表达式,比如它可以返回一个值。是除了condition ? then : else)之外的唯一一个三元表达式

        //传统的写法
        var a = 1
        var b = 2
        var index = a
        if(a > b){
            index = a
        }else{
            index = b
        }
        println("最后输出值:" + index)
        
        //作为表达式可以写为
        var index1 = if(a > b) a else b
        println("最后输出值:" +  index1)
        
        //if 还可以作为块,最后一个表达式为该快的值
        var index2 = if(a > b){
            a
        }else {
            b
        }
        println("最后输出值:" + index2)
    

    when 和 java语言你们的 switch case 的用法差不多 {}可以省略不写 可也代替if(){} else if(){} else{}

        var index3 = 2
        when(index3){
            1 ->{
                print("x = 1")
            }
            2 ->{
                print("x = 2")
            }
            else ->{
                print("x = 其他值")
            }
        }
        //如果有分支可以用同样的方式处理的话,分支条件可以连在一起:
        when(index3){
            1,2 ->{
                print("x = 1 or x = 2")
            }
            else ->{
                print("x = 其他值")
            }
        }
        //可以用任意表达式作为分支判断条件
        
        when(index3){
            checkNumber() ->{
                print("满足此表达式")
            }
            else ->{
                print("x = 其他值")
            }
        }
        //可以用 in 或者 !in 检查值是否值在一个集合中:
        var index4 = 3
        
        when (index4) {
            in 1..10 -> print("x is in the range")
            !in 10..20 -> print("x is outside the range")
            else -> print("none of the above")
        }
    
    

    2,for循环 list map 迭代

    fun main(args: Array<String>) {
        //声明list不指定类型数组  自动匹配类型
        var list = listOf("aa","bb","Ccc")
        //迭代list 数组数据
        // $ 字符串模板 可以直接显示  i为下标  e为值
        for((i,e) in list.withIndex()){
            println("$i $e")
        }
        //也可以其他方式迭代
        for(e in list){
            println("$e")
        }
        
        //声明list指定类型数组  list:List<T> 可以是任何对象
        var list1:List<Int> = listOf(1,2)
        for(i in list1){
            println(i)
        }
        //声明map for循环通过 key value 遍历
        var map = mapOf("1" to "ys","2" to "ll")
        for ((k, v) in map) {
            println("$k -> $v")
        }
          
    }
    

    3,while循环

    while 和 do...while 和java一样的用法

    var x:Int = 10
    while (x > 0) {
        x--
    }
    
    do {
        val y = add()
    } while (y != null) // y 在这是可见的
    

    while 循环是支持 return break continue 等操作的 和java 你们一样的用法

    4, Set迭代

        //set迭代自动去重复  通过 froEach 方法
        val mSet = mutableSetOf(1, 8, 2, 9, 1, 4, 7, 9, 0, 0, 8)
        mSet.forEach {
            println(it)
        }
    

    控制台输出值为 1 8 2 9 4 7 0

    List也可以通过forEach方法迭代

    相关文章

      网友评论

          本文标题:四、kotlin控制流 循环迭代

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