Kotlin 控制流和陣列操作詳解

小万哥丶發表於2024-08-07

Kotlin when

與編寫許多 if..else 表示式相比,您可以使用 when 表示式,它更易讀。

它用於選擇要執行的多個程式碼塊中的一個:

示例

使用星期幾的編號來計算星期幾的名稱:

val day = 4

val result = when (day) {
  1 -> "Monday"
  2 -> "Tuesday"
  3 -> "Wednesday"
  4 -> "Thursday"
  5 -> "Friday"
  6 -> "Saturday"
  7 -> "Sunday"
  else -> "Invalid day."
}
println(result)

// 輸出 "Thursday" (day為4)

when 表示式類似於 Java 中的 switch 語句。

工作原理如下:

  1. when 變數(day)進行一次評估。
  2. day 變數的值與每個“分支”的值進行比較。
  3. 每個分支以一個值開始,後跟一個箭頭(->)和一個結果。
  4. 如果匹配,則執行相關聯的程式碼塊。
  5. 使用 else 指定如果沒有匹配要執行的程式碼。

在上面的示例中,day 的值為 4,因此將列印 "Thursday"

Kotlin While 迴圈

迴圈可以在達到指定條件時執行一段程式碼塊。迴圈非常方便,因為它們節省時間,減少錯誤,並使程式碼更易讀。

Kotlin while 迴圈

while 迴圈透過條件為 true 時迴圈執行一段程式碼塊:

語法

while (condition) {
  // 要執行的程式碼塊
}

在下面的示例中,只要計數器變數 i 小於 5,迴圈中的程式碼將一遍又一遍地執行:

示例

var i = 0
while (i < 5) {
  println(i)
  i++
} 

注意:不要忘記增加條件中使用的變數,否則迴圈將永遠不會結束。

Kotlin do..while 迴圈

do..while 迴圈是 while 迴圈的變體。這個迴圈會在檢查條件是否為 true 之前執行一次程式碼塊,然後只要條件為 true,它就會重複執行迴圈。

語法

do {
  // 要執行的程式碼塊
} while (condition);

下面的示例使用了 do/while 迴圈。即使條件為 false,該迴圈也會至少執行一次,因為在測試條件之前會執行程式碼塊:

示例

var i = 0
do {
  println(i)
  i++
} while (i < 5)

以上是關於 Kotlin 中 when 表示式以及 whiledo..while 迴圈的詳細介紹。這些功能使得編寫和理解條件和迴圈更加簡單和直觀。

Kotlin Break and Continue

Kotlin Break

break語句用於跳出迴圈。

在以下示例中,當 i 等於 4 時跳出迴圈:

var i = 0
while (i < 10) {
  println(i)
  i++
  if (i == 4) {
    break
  }
}

Kotlin Continue

continue語句用於在迴圈中的某一次迭代中跳過特定條件的程式碼,並繼續執行下一次迭代。

在以下示例中,跳過值為 4 的情況:

var i = 0
while (i < 10) {
  if (i == 4) {
    i++
    continue
  }
  println(i)
  i++
}

Kotlin Arrays

Kotlin 陣列

陣列用於在單個變數中儲存多個值,而不是為每個值建立單獨的變數。

要建立一個陣列,請使用 arrayOf() 函式,並在其中放置逗號分隔的值列表:

val cars = arrayOf("Volvo", "BMW", "Ford", "Mazda")

訪問陣列元素

您可以透過引用索引號(在方括號內)來訪問陣列元素。

在這個例子中,我們訪問 cars 陣列中第一個元素的值:

val cars = arrayOf("Volvo", "BMW", "Ford", "Mazda")
println(cars[0])
// 輸出 Volvo

注意:陣列索引從 0 開始:[0] 是第一個元素,[1] 是第二個元素,依此類推。

修改陣列元素

要更改特定元素的值,請引用索引號:

cars[0] = "Opel"

例如:

val cars = arrayOf("Volvo", "BMW", "Ford", "Mazda")
cars[0] = "Opel"
println(cars[0])
// 現在輸出 Opel 而不是 Volvo

陣列長度 / 大小

要查詢陣列中有多少個元素,請使用 size 屬性:

val cars = arrayOf("Volvo", "BMW", "Ford", "Mazda")
println(cars.size)
// 輸出 4

檢查元素是否存在

您可以使用 in 運算子來檢查陣列中是否存在元素:

val cars = arrayOf("Volvo", "BMW", "Ford", "Mazda")
if ("Volvo" in cars) {
  println("存在!")
} else {
  println("不存在。")
}

遍歷陣列

通常在處理陣列時,您需要遍歷所有元素。

您可以使用 for 迴圈遍歷陣列元素,關於這一點,您將在下一章學習更多。

以下示例輸出 cars 陣列中的所有元素:

val cars = arrayOf("Volvo", "BMW", "Ford", "Mazda")
for (x in cars) {
  println(x)
}

以上是關於 Kotlin 中 breakcontinue 以及基本陣列操作的詳細介紹。這些功能使得控制迴圈流程和管理多個資料項變得更加靈活和高效。

最後

為了方便其他裝置和平臺的小夥伴觀看往期文章:

微信公眾號搜尋:Let us Coding,關注後即可獲取最新文章推送

看完如果覺得有幫助,歡迎 點贊、收藏、關注

相關文章