Kotlin 全面學習之路 (二) -- 控制流(If、When、For、While)
阿新 • • 發佈:2019-01-25
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 語法讓我重新認識的是:
- 當 If 和 When 語句當作表示式時 else 是必不可少的
- 在 For 語句迴圈中,初步認識了
解構函式
的存在