zoukankan      html  css  js  c++  java
  • Kotlin when 流程判断

    如果学过C或者java C#等语言。 一定熟悉SWITCH这个流程判断

    但是在kotlin中却没有这个。而是 使用了When来代替。

    当什么时候。

    下面我觉一个简单的例子:

    import java.util.*
    
    fun main (args: Array<String>)
    {
        var sc:Scanner=Scanner(System.`in`);
        var input=sc.next()
      when(input)
    {
          "a"->println(”输入了a“);
          "b"->println(”输入了b“);
         //很多个
     }
        
    }

    解释:

     当when检测input等于下面某个值的时候就执行后面的代码。

     当检测到某个值与条件相符合的用->来连接右面要执行的代码。

     是一个简单的箭头。减号和大于号组成。

    同样,When和if都可以作为表达式,也可以用来赋值。

    下面的例子:

    import java.util.*
    
    fun main (args: Array<String>)
    {
        var sc:Scanner=Scanner(System.`in`);
        var input=sc.next()
        var key= when(input)
        {
            "a"-> "a"
            "b"-> "b"
            else ->"没有值"
           //很多个
        }
      print("输入了:"+key)
    }

    值得注意的是,如果when要当作表达式,就一定要有else。 并且是最后一个表达式作为返回得值。

    和if一样,表达式,函数都可以作为表达式来检测。(下面这个例子有很大的 问题,但是意思差不多 将就着看看把 等有好例子 我在换)

    import java.util.*
    
    fun main (args: Array<String>)
    {
        var sc: Scanner = Scanner(System.`in`);
      //var value=
       var key= when(go(sc.nextInt()))
        {
            go(2014)-> "一样的值:2014"
            go(2013)-> "一样的值:2013"
            go(2012)-> "一样的值:2012"
           else ->"no value"
        }
        print(key)
    }
    fun go(Year:Int):Int
    {
       var re= if(Year%4==0)
       {
           println("闰年")
           1
        }
        else
       {
           println("不是")
           0
       }
        return re;
    }

    当我输入2016的时候:

     会有如此的结果,也就是说在when用函数作为一个表达式的时候会去运行这个函数。

    这个需要注意一下。

  • 相关阅读:
    poj2823单调队列认知
    有关二叉树的三序遍历的题目
    hdu4757 可持续字典树
    ZOJ2532判断边是否是割集中的边
    poj2455 k条路最小化最长边
    乘法逆元模板
    poj1699 KMP+壮压DP
    Innodb存储引擎——非聚集索引
    java集合框架笔记
    jvm垃圾回收
  • 原文地址:https://www.cnblogs.com/T-ARF/p/7603118.html
Copyright © 2011-2022 走看看