美文网首页Kotlin
Kotlin 条件控制

Kotlin 条件控制

作者: 郎官人 | 来源:发表于2017-09-19 12:40 被阅读0次

    IF 表达式

    一个 if 语句包含一个布尔表达式和一条或多条语句。它与在Java中的语法其实并没有什么区别。

    • 下面是一般用法

        fun ifControlStream(a:Int){
                 if(a>0) {
                     print("a >0")
                 }else{
                     print("a<=0")
                 }
        }
      
    • 或者作为表达式

        val max = if (a > b) a else b
      

      这也说明我也不需要像Java那种有一个三元操作符,因为我们可以使用它来简单实现

    • 还可以这样

        val max = if (a > b) {
            print("Choose a")
            a
        } else {
            print("Choose b")
            b
        }
      
    • 与区间联用。基本语法一节中我们提到了区间,即in关键字。

        fun main(args: Array<String>) {
            val x = 5
            val y = 9
            if (x in 1..8) {
                println("x 在区间内")
            }
        }
      

    Note:in表示的是闭合区间,上面代码中的判断语句相当于Java中的

    x>=1&&x<=8
    

    When 表达式

    when 类似其他语言的 switch 操作符。用法大致有:

    • 当作语句使用

         fun whenStream(x:Int){
                 when(x){
                     in 1..8 -> print("x 在1-8")
                     in 9..20 -> print("x 在9-20")
                     else->{
                         print("x 大于20")
                     }
                 }
         }
      

      else 相当于是Java switch语句中的default.
      如果其他分支都不满足条件将会求值 else 分支。
      如果很多分支需要用相同的方式处理,则可以把多个分支条件放在一起,用逗号分隔:

        when (x) {
            0, 1 -> print("x == 0 or x == 1")
            else -> print("otherwise")
        }
      
    • 作为表达式

      fun hasPrefix(x: Any) = when(x) {
      is String -> x.startsWith("prefix")
      else -> false
      }

    when 也可以用来取代 if-else if链。 如果不提供参数,所有的分支条件都是简单的布尔表达式,而当一个分支的条件为真时则执行该分支:

        when {
            x.isOdd() -> print("x is odd")
            x.isEven() -> print("x is even")
            else -> print("x is funny")
        }
    

    Demo

    val set = setOf<String>("mac,android,windows,iOS")
     when{
       "linux" in set -> print("linux in it ")
       "iOS" in set-> print("iOS is in os set")
     }

    相关文章

      网友评论

        本文标题:Kotlin 条件控制

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