Kotlin 循环与函数详解:高效编程指南

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) |

关注灵活就业新业态,关注公账号:贤才宝(贤才宝https://www.51xcbw.com

相关推荐
程序猿小柒8 分钟前
4.Python字符串和列表:字符串输入、字符串输出、下标和切片、字符串常见函数、列表(list)、列表的循环遍历、列表的增删改查、列表的嵌套、列表的切片
开发语言·python
web1309332039811 分钟前
JAVA面试之容器
java·开发语言·面试
扫地僧00912 分钟前
第18章 不可变对象设计模式(Java高并发编程详解:多线程与系统设计)
java·python·设计模式
李白同学25 分钟前
【C语言】指针详细解读3
c语言·开发语言·数据结构
睡不着还睡不醒29 分钟前
anaconda中可以import cv2,但是notebook中cv2 module not found
python·opencv·计算机视觉
pchmi31 分钟前
C# OpenCV机器视觉:学生注意力监测
开发语言·opencv·c#
华清远见IT开放实验室1 小时前
【每天学点AI】实战仿射变换在人工智能图像处理中的应用
图像处理·人工智能·python·opencv·仿射变换
lly2024061 小时前
前端控制器模式
开发语言
码界筑梦坊1 小时前
基于Flask的历史空难数据可视化分析系统的设计与实现
python·信息可视化·flask·毕业设计
萧鼎1 小时前
使用Python的Tabulate库优雅地格式化表格数据
python