在 kotlin 中,if是乙個表示式,即它會返回乙個值
// 傳統用法
var max = a
if (a
< b) max = b
// with else
var max: int
if (a > b) else
if的分支可以是**塊,最後的表示式作為該塊的值:
// 作為表示式 注意if語句作為表示式必須有else
val max = if (a > b) a
else b
val max = if (a > b) else
when 取代了類 c 語言的 switch 操作符。其最簡單的形式如下:
when (x)
}
另一種可能性是檢測乙個值是(is)或者不是(!is)乙個特定型別的值。注意: 由於智慧型轉換,你可以訪問該型別的方法和屬性而無需 任何額外的檢測。
fun hasprefix(x: any) = when(x)
when 也可以用來取代 if-else if鏈。 如果不提供引數,所有的分支條件都是簡單的布林表示式,而當乙個分支的條件為真時則執行該分支:
when
for 迴圈可以對任何提供迭代器(iterator)的物件進行遍歷,語法如下:
for (item
in collection) print(item)
迴圈體可以是乙個**塊。
for (item: int in ints)
如上所述,for 可以迴圈遍歷任何提供了迭代器的物件。即:
有乙個成員函式或者擴充套件函式 iterator(),它的返回型別
有乙個成員函式或者擴充套件函式 next(),並且
有乙個成員函式或者擴充套件函式 hasnext() 返回 boolean。
這三個函式都需要標記為 operator。
對陣列的 for 迴圈會被編譯為並不建立迭代器的基於索引的迴圈。
如果你想要通過索引遍歷乙個陣列或者乙個 list,你可以這麼做:
for (i in array.indices)
注意這種「在區間上遍歷」會編譯成優化的實現而不會建立額外物件。
或者你可以用庫函式 withindex:
for ((index, value) in array.withindex())
while 和 do..while 照常使用
while (x > 0)
do while (y != null) // y 在此處可見
kotlin也支援傳統迴圈中的break和continue kotlin 基礎 控制流
在 kotlin 中,if 是乙個表示式,也就是說,它有返回值.因此,kotlin 中沒有三元運算子 條件 then 分支返回值 else 分支返回值 因為簡單的 if 表示式完全可以實現同樣的任務。if 的傳統用法 var max a if a b max b 使用 else 分支的方式 var ...
Python學習筆記(四)控制流
python執行版本3.6.3 ide pycharm 教育版 if語句 完整的if語句包含三個語句塊 if elif else。其中elif和else均可以省略 在任意乙個語句塊均可以內嵌if語句。注意python通過縮進來區分不同層次的語句塊。值得注意的是,不同於c語言使用括號區分判斷條件,py...
Kotlin 迴圈控制
for 迴圈可以對任何提供迭代器 iterator 的物件進行遍歷,語法如下 for item incollection print item 迴圈體可以是乙個 塊 for item int inints 如上所述,for 可以迴圈遍歷任何提供了迭代器的物件。如果你想要通過索引遍歷乙個陣列或者乙個 ...