美文网首页
Kotlin基础语法--控制流

Kotlin基础语法--控制流

作者: Whyn | 来源:发表于2017-07-29 17:15 被阅读12次

If表达式

Kotlin中的 if 不同Java,它不仅仅只能作为一个判断语句,还能作为表达式,即它能返回一个值.

// 传统用法
var max = a 
if (a < b) max = b

// With else 
var max: Int
if (a > b) {
    max = a
} else {
    max = b
}

在Kotlin中,没有三元运算符,但是可以使用 if 表达式完成三元运算符功能

//Java中三元运算符
int max = a > b ? a : b ;
//Kotlin实现类似三元运算符功能
var max = if (a > b) a else b

注: Kotlin中 if 作为表达式,后面可接代码块,最后的表达式作为该块的返回值:

val max = if (a > b) {
    print("Choose a")
    a
} else {
    print("Choose b")
    b
}

注: 如果把 if 作为表达式使用,那么必须有 else 分支,这样才能确保 if 一定能返回一个值.

When 表达式

Kotlin中的 whenif 一样,既可以作为语句,也可以作为表达式.作为语句时,其相当于Java中的 switch ,作为表达式时,它的任何一个分支的代码块的最后一句表达式作为该分支的返回值,同时, when 作为表达式使用必须有 else 分支存在.

//作为语句
fun printAge(age: Int, adult: Array<Int>) {
    when (age) {
        1 -> println("age 1")
        2, 3, 4, 5 -> println("small children")
        in 15..20 -> println("teenagers")
        in adult -> println("adults")
        !in 50..100 -> println("not elders")
    }
}

//作为表达式
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")
}

For 循环

for 循环可以对任何提供迭代器(iterator)的对象进行遍历,语法如下:

for (item in collection) {
//do your thing
}

for (index in arrays.indices)
   println(arrays[index])

for ((index,value) in arrays.withIndex()){
  println("arrays[$index]=$value")
}

While 循环

whiledo..while 与Java用法一致.

循环中的break和continue

Kotlin中的 breakcontinue 基础用法与Java类似,其余完整用法请参见返回和跳转

本文内容摘自:控制流

相关文章

网友评论

      本文标题:Kotlin基础语法--控制流

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