美文网首页
四、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