Kotlin筆記(四)控制流

2021-08-02 00:24:00 字數 1427 閱讀 4657

在 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 可以迴圈遍歷任何提供了迭代器的物件。如果你想要通過索引遍歷乙個陣列或者乙個 ...