Kotlin 迴圈與函式詳解:高效程式設計指南

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

Kotlin 迴圈

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

要遍歷陣列元素,請使用 for 迴圈和 in 運算子:

示例

輸出 cars 陣列中的所有元素:

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

您可以遍歷各種型別的陣列。在上面的示例中,我們使用了一個字串陣列。

在下面的示例中,我們遍歷一個整數陣列:

示例

val nums = arrayOf(1, 5, 10, 15, 20)
for (x in nums) {
  println(x)
}

傳統的 For 迴圈

Java 和其他程式語言不同,Kotlin 中沒有傳統的 for 迴圈。

Kotlin 中,for 迴圈用於遍歷陣列、範圍以及其他包含可計數值的事物。

Kotlin 範圍

使用 for 迴圈,您還可以使用 .. 建立值的範圍:

示例

列印整個字母表:

for (chars in 'a'..'x') {
  println(chars)
}

您還可以建立數字範圍:

示例

for (nums in 5..15) {
  println(nums)
}

注意:第一個和最後一個值包含在範圍內。

檢查值是否存在

您還可以使用 in 運算子檢查值是否存在於範圍內:

示例

val nums = arrayOf(2, 4, 6, 8)
if (2 in nums) {
  println("存在!")
} else {
  println("不存在。")
}

示例

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

中斷或繼續一個範圍

您還可以在範圍/for 迴圈中使用 breakcontinue 關鍵字:

示例

nums 等於 10 時停止迴圈:

for (nums in 5..15) {
  if (nums == 10) {
    break
  }
  println(nums)
}

示例

跳過迴圈中的 10 並繼續下一個迭代:

for (nums in 5..15) {
  if (nums == 10) {
    continue
  }
  println(nums)
}

Kotlin 函式

函式是隻有在呼叫時才執行的一段程式碼。

您可以將資料(稱為引數)傳遞給函式。

函式用於執行某些操作,它們也被稱為方法。

預定義函式

事實證明,您已經知道函式是什麼。在本教程中,您一直在使用它!

例如,println() 是一個函式。它用於向螢幕輸出/列印文字:

示例

fun main() {
  println("Hello World")
}

建立您自己的函式

要建立您自己的函式,請使用 fun 關鍵字,並寫出函式名稱,後跟括號 ()

示例

建立一個名為 myFunction 的函式,該函式應該輸出一些文字:

fun myFunction() {
  println("I just got executed!")
}

呼叫函式

現在您已經建立了一個函式,可以透過呼叫它來執行。

要在 Kotlin 中呼叫函式,寫出函式名,後跟兩個括號 ()

在下面的示例中,myFunction() 被呼叫時會列印一些文字(操作):

示例

fun main() {
  myFunction() // 呼叫 myFunction
}

// 輸出 "I just got executed!"

如果您願意,可以多次呼叫一個函式:

示例

fun main() {
  myFunction()
  myFunction()
  myFunction()
}

// I just got executed!
// I just got executed!
// I just got executed!

函式引數

資訊可以作為引數傳遞給函式。

引數在函式名稱之後指定,在括號內。您可以新增任意數量的引數,只需用逗號分隔。請注意,您必須指定每個引數的型別(IntString 等)。

下面的示例有一個函式,它接收一個名為 fname 的字串引數。當呼叫函式時,我們傳遞一個名字,它在函式內部用於列印全名:

示例

fun myFunction(fname: String) {
  println(fname + " Doe")
}

fun main() {
  myFunction("John")
  myFunction("Jane")
  myFunction("George")
}

// John Doe
// Jane Doe
// George Doe

當一個引數傳遞給函式時,它被稱為實參。所以,從上面的示例中:fname 是一個引數,而 JohnJaneGeorge 是實參。

多個引數

您可以擁有任意數量的引數:

示例

fun myFunction(fname: String, age: Int) {
  println(fname + " is " + age)
}

fun main() {
  myFunction("John", 35)
  myFunction("Jane", 32)
  myFunction("George", 15)
}

// John is 35
// Jane is 32
// George is 15

注意:使用多個引數時,函式呼叫必須具有與引數數量相同的實參,並且實參必須以相同的順序傳遞。

返回值

在上面的示例中,我們使用函式輸出一個值。在下面的示例中,我們將使用函式返回一個值並將其賦值給一個變數。

要返回一個值,請使用 return 關鍵字,並在函式的括號後指定返回型別(在此示例中為 Int):

示例

具有一個 Int 引數和 Int 返回型別的函式:

fun myFunction(x: Int): Int {
  return (x + 5)
}

fun main() {
  var result = myFunction(3)
  println(result)
}

// 8 (3 + 5)

使用兩個引數

示例

具有兩個 Int 引數和 Int 返回型別的函式:

fun myFunction(x: Int, y: Int): Int {
  return (x + y)
}

fun main() {
  var result = myFunction(3, 5)
  println(result)
// 8 (3 + 5)

返回值的簡寫語法

還有一種更簡短的語法來返回值。您可以使用 = 運算子代替 return,而無需指定返回型別。Kotlin 足夠聰明,可以自動找出返回型別:

示例

fun myFunction(x: Int, y: Int) = x + y

fun main() {
  var result = myFunction(3, 5)
  println(result)
// 8 (3 + 5)

最後

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

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

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

相關文章