if 表達式
Kotlin中if是一個表達式,即它會返回一個值。java中我們可以使用三元表達式:
條件 ? result1 : result2
//傳統用法
var max = a
if(a < b) max = b
//
var max:Int
if(a > b){
max = a
}else{
max = b
}
//作爲表達式
val max = if(a>b) a else b
if的分支可以是代碼塊,最後的表達式作爲該塊的值:
val max = if (a > b) {
print("Choose a")
a
} else {
print("Choose b")
b
}
如果你使用 if 作爲表達式而不是語句(例如:返回它的值或者把它賦給變量),該表達式需要有 else 分支。
when表達式
- 將它的參數與所有的分支條件順序比較,直到某個分支滿足條件
- when 既可以被當做表達式使用也可以被當做語句使用
- when 作爲一個表達式使用,則必須有 else 分支
- 可以用任意表達式(而不只是常量)作爲分支條件
- 如果很多分支需要用相同的方式處理,則可以把多個分支條件放在一起,用逗號分隔:
when (x) {
1 -> print("x == 1")
2 -> print("x == 2")
else -> { // 注意這個塊
print("x is neither 1 nor 2")
}
}
3. For循環
對對象進行遍歷,Kotlin中使用關鍵字“in”代替了Java中的“:”符號。如下所示
for(item: Int in ints){
}
如果需要在數字區間上迭代,使用下面的方式:
for(i in 1..5){
println(i)
}
for(i in 6 downTo 0 step 2){
println(i)
}
想要通過索引遍歷數組或集合:
for(i in array.indices){
println(array[i])
}
//使用庫函數
for((index,value) in array.withIndex()){
println("the element at $index is $value")
}
While循環
Kotlin中while循環與java一樣。
while(x > 0){
x--
}
do{
val y = retrieveData()
}while(y != null)
break 和continue
- break:終止最直接包圍它的循環。
- continue:繼續下一次最直接包圍它的循環