Kotlin 全面学习之路 (二) -- 控制流(If、When、For、While)

1、If/else 语句

在 Kotlin 中 If/else 可以和在 Java 一样使用,与之不一样的是在 Kotlin 中它可以作为 带有返回值的表达式,如同 Java 中的三目运算符:

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

注意:If 语句作为表达式时 必须带有 else 语句

2、When 语句

Kotlin 中的 when 语句相当于 Java 中的 switch 句

when(x){
  a -> 语句1
  b -> 语句2 
  method(c) -> 语句3
  else -> 其他
}

val a =  when(x){
      a -> 语句1
      b -> 语句2 
      method(c) -> 语句3
      else -> 其他
    }

其中每一个分支既可以为 变量 也可以为 表达式

注意: 就像 If/else 语句一样,当 when 语句被当作表达式时,必须有 else 分支

按照 when 语句的表达含义,我们可以用 when 语句替代 If/else 语句。

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

3、For 循环

常见的几种 for 语句的用法:

//常见的形式
for(i in 1..10){
  println(i)
}

for(i in 1 until 10){
  println(i)
}

for(i in 10 downTo 1){
  println(i)
}

//步进
for(i in 1..10 step 2){
  println(i)
}

//相当于 for 语句的高阶函数
repeat(10){
  println(i)
}

需要注意的是以下情况是不存在的

//这是错误的表示方式
for(i in 10..1){
  println(i)
}

配合 Kotlin 库函数我们可以更方便的遍历数组或集合,以下为几个例子:

for (i in array.indices) {
    println(array[i])
}


for ((index, value) in array.withIndex()) {
    println("the element at $index is $value")
}

4、While 语句

while 语句在 Kotlin 的表达方式和 Java 中几乎没什么区别,具体如下:

while (x > 0) {
    x--
}

do {
    val y = retrieveData()
} while (y != null)

对于我来说,这一次重新梳理 Kotlin 语法让我重新认识的是:

  1. 当 If 和 When 语句当作表达式时 else 是必不可少的
  2. 在 For 语句循环中,初步认识了 解构函数 的存在

猜你喜欢

转载自blog.csdn.net/Strange_Monkey/article/details/82421442