zoukankan      html  css  js  c++  java
  • Kotlin学习系列(二)

    IF表达式

    if在kotlin可以当做表达式使用跟java的三元操作符类似:

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

    if分支可以使用代码块,最后一个表达式是返回值:

    
    var max = if (a > b){
        print(a)
        a
    }else{
        print(b)
        b
    }
    
    

    When表达式

    kotlin使用when来替换switch语句,基本特性都跟switch差不多会对列出来的分支进行匹配满足条件的分支会被执行。when可以当做表达式或者语句
    如果使用when当前表达式满足条件的分支会当做when的返回值。当when当做语句使用的时候会忽略所有分支的值。when的每个分支也可以是语句块最后一个表达式是这个语句块的值。

    用做表达式:

        var matchValue = 2
        var result = when(matchValue){
            1 -> 1
            2 -> 2
            else ->3
        }
    
        println(result)
    

    用于语句:

        matchValue = 3
        when(matchValue) {
            1 -> println(1)
            2 -> println(2)
            else -> println(3)
        }
    

    匹配多少值:

        when(matchValue){
            1,2,3 -> println(matchValue)
        }
    

    使用is!is:

        var isInt = when(matchValue){
            is Int -> println(matchValue) 
            else -> false
        }
    

    使用in!in:

        var valueIn = when(matchValue){
            in 1..3 -> true
            else -> false
        }
    

    当when没有提供一个值时它的分支是boolean表达式when会执行为真的分支:

        var valueIn = when(matchValue){
            in 1..3 -> true
            else -> false
        }
    

    for循环

    通过任意提供的迭代器的对象循环(迭代器与java类似):

    for (item in collection)
      print(item)
    

    遍历数组:

       var types = intArrayOf(1, 2, 3)
        for(index in types.indices)
            print(index.toString() + " ")
    
        for((index, value ) in types.withIndex())
            println("index: $index, value: $value")
    

    while循环

    跟平常的while使用一样:

        var index = 0
        while(index < 10)
            print(index++)
    
        index = 0
        do{
            print(index)
        }while (index++ < 10)
    



    《架构文摘》每天一篇架构领域重磅好文,涉及一线互联网公司应用架构(高可用、高性 能、高稳定)、大数据、机器学习等各个热门领域。

  • 相关阅读:
    UVA 10905
    UVA 10859 树形DP
    LA 4794 状态DP+子集枚举
    LA 3695 部分枚举
    UVA 11825 状态压缩DP+子集思想
    UVA 10891 区间DP+博弈思想
    HDU 5239 上海大都会 D题(线段树+数论)
    HDU 5242 上海大都会 G题
    HDU 5241 上海大都会 F题
    P1359 租用游艇
  • 原文地址:https://www.cnblogs.com/xwgblog/p/5289823.html
Copyright © 2011-2022 走看看