美文网首页
条件控制

条件控制

作者: Green_Apple | 来源:发表于2017-09-01 09:32 被阅读0次

    package tiaojiankongzhi
    //---------------IF表达式----------
    /*
    java的传统用法
    //可以作为表达式
    /
    /
    fun main(args: Array<String>) {

    val max=if(10>5) 10 else 5
    println(max)
    val max2=if(10>5){
        println("choose 10")
        10
    }else{
        println("choose 5")
        5
    }
    println(max2)
    
    //因此也不需要像java一样的三元操作符  可以简单的if赋值判断
    

    }*/

    //--------------使用区间-------------------
    /*fun main(args: Array<String>) {
    //使用in downTo step等来检测否个数字是否在指定区间内
    val x=5
    val y=9
    if(x in 1..8)
    println("x 在区间内")

    }*/

    //----------when表达式---------------------
    /*
    when 将它的参数和所有的分支条件顺序比较,直到某个分支满足条件
    when 既可以被当做表达式使用也可以被当做语句使用。
    如果他被当做表达式,符合条件的分支的值就是整个表达式的值
    如果当做语句使用,则忽略个别分支的值
    when 类似其他语言的switch操作符
    */

    fun main(args: Array<String>) {
    val x:Int=1
    when(x){
    1-> print("x===1")
    2-> print("x===2")
    else ->{
    //这里即default 既不是1也不是2
    println("x既不是1也不是2")
    }
    }

    //也可以将多个分支的条件放在一起 用逗号分隔
    when(x){
        1,2->println("x===1||x===2")
        else->{
            print("x既不是1也不是2")
        }
    }
    
    //可以检测一个值在in或者不在!in某个区间来判断
    when(x){//只会判断一个条件
        in 1..10->println("在")
        !in 11..20->println("不在")
        else->{
            println("none")
        }
    }
    
    //检测一个值是is或者不是!is 一个特定类型的值
    //由于智能转换,你可以访问该类型的方法和属性而无需任何额外的检测
    fun hasPrefix(x:Any)=when(x){
        is String->x.startsWith("prefix")
        else -> false
    }
    println(hasPrefix("prefixaaaa"))
    
    //when也可以来取代if-else 链
    when{
        x==1->print("x is odd")
        x==3->print("x is even")
        else -> print("x is funny")
    }
    
    //when中使用in来判断集合中是否包含某实例
    val items=setOf("apple","banana","kiwi")
    when{
        "orange" in items->println("juicy")
        "apple" in items->println("apple is fine too")
    }
    

    }

    相关文章

      网友评论

          本文标题:条件控制

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