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

ops/2025/2/10 8:33:40/

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-范围">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 循环中使用 break 和 continue 关键字:

示例

当 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-函数">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 是一个参数,而 JohnJane 和 George 是实参。

多个参数

您可以拥有任意数量的参数:

示例

 
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)


http://www.ppmy.cn/ops/157196.html

相关文章

Java 一键将 Word 文档转为 PDF

嘿,朋友们!在开发中,经常会碰到需要把 Word 文档转换成 PDF 格式的需求,像生成报告、合同啥的。Java 有不少好用的库能实现这个功能,下面就给大家介绍两种常见的方法,分别使用 Apache POI 和 Docx4J 结合 i…

V8 如何进行内存优化

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

JUnit 5 源码结构概览

JUnit 5 源码结构概览 JUnit 5 的源码分为三大核心模块:JUnit Platform、JUnit Jupiter 和 JUnit Vintage。每个模块职责明确,共同构建了现代化的测试框架。以下是详细的源码结构解析: 一、JUnit Platform 定位:测试框架的运行时…

DeepSeek R1 Distill Llama 70B(免费版)API使用详解

DeepSeek R1 Distill Llama 70B(免费版)API使用详解 在人工智能领域,随着技术的不断进步,各种新的模型和应用如雨后春笋般涌现。今天,我们要为大家介绍的是OpenRouter平台上提供的DeepSeek R1 Distill Llama 70B&…

穷举vs暴搜vs深搜vs回溯vs剪枝系列一>黄金矿工

目录 决策树&#xff1a;代码设计代码&#xff1a; 决策树&#xff1a; 代码设计 代码&#xff1a; class Solution {boolean[][] vis;int ret,m,n;public int getMaximumGold(int[][] grid) {m grid.length;n grid[0].length;vis new boolean[m][n]; for(int i 0; i <…

【专题】2025年我国机器人产业发展形势展望:人形机器人量产及商业化关键挑战报告汇总PDF洞察(附原数据表)

原文链接&#xff1a;https://tecdat.cn/?p39668 机器人已广泛融入我们生活的方方面面。在工业领域&#xff0c;它们宛如不知疲倦的工匠&#xff0c;精准地完成打磨、焊接等精细工作&#xff0c;极大提升了生产效率和产品质量&#xff1b;在日常生活里&#xff0c;它们是贴心…

【实战篇】DeepSeek + ElevenLabs:让人工智能“开口说话”,打造你的专属语音助手!

最近,AI语音合成技术真是火得不行,各种“开口脆”的AI声音层出不穷,听得我直呼“这也太像真人了吧!” 作为一个科技爱好者,我当然不能错过这股潮流,这不,最近就沉迷于用 DeepSeek 和 ElevenLabs 这两款神器,捣鼓各种人声音频,简直停不下来! 先来科普一下这两位“主角…

Qt最新热点

Qt的最新热点主要集中在以下几个方面: 跨平台开发:Qt继续强调其在跨平台开发方面的优势,支持在Windows、macOS、Linux以及移动操作系统(如Android和iOS)上的应用开发。 Qt for Python:Qt for Python(PySide2和PySide6)的发展,为Python开发者提供了更强大的工具来创建桌…