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

小万哥
• 阅读 255

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,关注后即可获取最新文章推送

看完如果觉得有帮助,欢迎 点赞、收藏、关注

点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
2年前
java 基础知识
遍历遍历就是把这个数组的每个元素显示出来遍历的方法就是先定义这个数组的大小,然后用FOR循环来完成数组,例如doublescorenewdouble5;ScannerinputnewScanner(System.in);for(inti0;i<score.l
Stella981 Stella981
2年前
JavaScript中遍历数组和对象的方法
js数组遍历和对象遍历针对js各种遍历作一个总结分析,从类型用处,分析数组和对象各种遍历使用场景,优缺点等JS数组遍历:1,普通for循环,经常用的数组遍历vararr1,2,0,3,9,10,20,
Wesley13 Wesley13
2年前
Java 8 中的 Lambda 表达式 vs. Kotlin 中的 Lambda
直接上一段Kotlin的函数式编程的代码:packagecom.easykotlin.lec02funsum1(x:Int,y:Int):Int{returnxy}funsum2(x:Int,y:Int)xy//
Wesley13 Wesley13
2年前
Java如何遍历二维数据
/\需求:二维数组遍历外循环控制的是二维数组的长度,其实就是一维数组的个数。内循环控制的是一维数组的长度。\/classArray2Test{publicstaticvoidmain(String\\args){//定义一个二维数组int\\\\arr{{1,2,3}
小万哥 小万哥
3个月前
Kotlin 数据类型详解:数字、字符、布尔值与类型转换指南
Kotlin中变量类型由值决定,如Int、Double、Char、Boolean、String。通常可省略类型声明,但有时需指定。数字类型分整数(Byte,Short,Int,Long)和浮点(Float,Double),默认整数为Int,浮点为Double。布尔值是true或false,Char用单引号,字符串用双引号。数组和类型转换将在后续讨论,转换需用特定函数。
小万哥 小万哥
1个月前
Kotlin 布尔值教程:深入理解与应用示例
Kotlin中的布尔值是一种数据类型,仅能存储true或false两种状态,适用于表示二选一的情况,如开关或真假判断。布尔类型可通过Boolean关键字声明,并直接赋值为true或false。此外,Kotlin支持使用比较运算符创建布尔表达式,用于条件判断。条件语句包括if、else和elseif,允许根据不同条件执行特定代码块。特别地,在Kotlin中,if..else结构不仅能作为语句使用,还能作为表达式,即可以在条件判断的同时返回一个值。这种灵活性使得Kotlin在处理条件逻辑时更为简洁高效。
小万哥 小万哥
1个月前
Kotlin 控制流和数组操作详解
Kotlin的when表达式提供了一种比if..else更清晰的方式来选择执行多个代码块之一,类似于Java的switch语句但更为强大和灵活。while循环允许在条件为真时重复执行代码块,而do..while循环则保证至少执行一次。break和continue可用于控制循环流程:前者终止循环,后者跳过当前迭代。数组则用于存储多个值,可以创建、访问、修改数组元素及遍历整个数组。这些构造使得编写简洁且高效的代码成为可能。
小万哥 小万哥
4个月前
NumPy 数组迭代与合并详解
NumPy数组迭代NumPy数组迭代是访问和处理数组元素的重要方法。它允许您逐个或成组地遍历数组元素。基本迭代我们可以使用Python的基本for循环来迭代NumPy数组。一维数组迭代:pythonimportnumpyasnparrnp.array(1
小万哥 小万哥
3个月前
NumPy 通用函数(ufunc):高性能数组运算的利器
NumPy的通用函数(ufunc)提供高性能的逐元素运算,支持向量化操作和广播机制,能应用于数组的数学、逻辑和比较运算。ufunc可提高计算速度,避免低效的循环,并允许自定义函数以满足特定需求。例如,ufunc实现加法比循环更高效。通过frompyfunc可创建自定义ufunc。判断函数是否为ufunc,可检查其类型是否为numpy.ufunc。ufunc练习包括数组的平方、平方根、元素积及性能对比。
小万哥 小万哥
3个月前
NumPy 简单算术:加减乘除及其他运算
NumPy中的简单算术运算可以通过add,subtract,multiply,divide,power,mod,remainder等函数实现,这些函数支持条件运算,并接受where参数。例如,add()实现加法,subtract()表示减法,multiply()是乘法,divide()用于除法,power()提升到幂次,mod()和remainder()计算余数。absolute()或abs()可以计算数组元素的绝对值。这些函数可用于数组或类似数组对象,返回新数组存储运算结果。