前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Kotlin 控制流和数组操作详解

Kotlin 控制流和数组操作详解

原创
作者头像
小万哥
发布于 2024-08-07 10:00:30
发布于 2024-08-07 10:00:30
1540
举报
文章被收录于专栏:程序人生丶程序人生丶

Kotlin when

与编写许多 if..else 表达式相比,您可以使用 when 表达式,它更易读。

它用于选择要执行的多个代码块中的一个:

示例

使用星期几的编号来计算星期几的名称:

代码语言:kotlin
AI代码解释
复制
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 时循环执行一段代码块:

语法

代码语言:kotlin
AI代码解释
复制
while (condition) {
  // 要执行的代码块
}

在下面的示例中,只要计数器变量 i 小于 5,循环中的代码将一遍又一遍地运行:

示例

代码语言:kotlin
AI代码解释
复制
var i = 0
while (i < 5) {
  println(i)
  i++
} 

注意:不要忘记增加条件中使用的变量,否则循环将永远不会结束。

Kotlin do..while 循环

do..while 循环是 while 循环的变体。这个循环会在检查条件是否为 true 之前执行一次代码块,然后只要条件为 true,它就会重复执行循环。

语法

代码语言:kotlin
AI代码解释
复制
do {
  // 要执行的代码块
} while (condition);

下面的示例使用了 do/while 循环。即使条件为 false,该循环也会至少执行一次,因为在测试条件之前会执行代码块:

示例

代码语言:kotlin
AI代码解释
复制
var i = 0
do {
  println(i)
  i++
} while (i < 5)

以上是关于 Kotlinwhen 表达式以及 whiledo..while 循环的详细介绍。这些功能使得编写和理解条件和循环更加简单和直观。

Kotlin Break and Continue

Kotlin Break

break语句用于跳出循环。

在以下示例中,当 i 等于 4 时跳出循环:

代码语言:kotlin
AI代码解释
复制
var i = 0
while (i < 10) {
  println(i)
  i++
  if (i == 4) {
    break
  }
}

Kotlin Continue

continue语句用于在循环中的某一次迭代中跳过特定条件的代码,并继续执行下一次迭代。

在以下示例中,跳过值为 4 的情况:

代码语言:kotlin
AI代码解释
复制
var i = 0
while (i < 10) {
  if (i == 4) {
    i++
    continue
  }
  println(i)
  i++
}

Kotlin Arrays

Kotlin 数组

数组用于在单个变量中存储多个值,而不是为每个值创建单独的变量。

要创建一个数组,请使用 arrayOf() 函数,并在其中放置逗号分隔的值列表:

代码语言:kotlin
AI代码解释
复制
val cars = arrayOf("Volvo", "BMW", "Ford", "Mazda")

访问数组元素

您可以通过引用索引号(在方括号内)来访问数组元素。

在这个例子中,我们访问 cars 数组中第一个元素的值:

代码语言:kotlin
AI代码解释
复制
val cars = arrayOf("Volvo", "BMW", "Ford", "Mazda")
println(cars[0])
// 输出 Volvo

注意:数组索引从 0 开始:[0] 是第一个元素,[1] 是第二个元素,依此类推。

修改数组元素

要更改特定元素的值,请引用索引号:

代码语言:kotlin
AI代码解释
复制
cars[0] = "Opel"

例如:

代码语言:kotlin
AI代码解释
复制
val cars = arrayOf("Volvo", "BMW", "Ford", "Mazda")
cars[0] = "Opel"
println(cars[0])
// 现在输出 Opel 而不是 Volvo

数组长度 / 大小

要查找数组中有多少个元素,请使用 size 属性:

代码语言:kotlin
AI代码解释
复制
val cars = arrayOf("Volvo", "BMW", "Ford", "Mazda")
println(cars.size)
// 输出 4

检查元素是否存在

您可以使用 in 运算符来检查数组中是否存在元素:

代码语言:kotlin
AI代码解释
复制
val cars = arrayOf("Volvo", "BMW", "Ford", "Mazda")
if ("Volvo" in cars) {
  println("存在!")
} else {
  println("不存在。")
}

遍历数组

通常在处理数组时,您需要遍历所有元素。

您可以使用 for 循环遍历数组元素,关于这一点,您将在下一章学习更多。

以下示例输出 cars 数组中的所有元素:

代码语言:kotlin
AI代码解释
复制
val cars = arrayOf("Volvo", "BMW", "Ford", "Mazda")
for (x in cars) {
  println(x)
}

以上是关于 Kotlin 中 breakcontinue 以及基本数组操作的详细介绍。这些功能使得控制循环流程和管理多个数据项变得更加灵活和高效。

最后

为了方便其他设备和平台的小伙伴观看往期文章:

微信公众号搜索:Let us Coding,关注后即可获取最新文章推送

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
微服务(三)——Eureka服务注册与发现&Eureka集群
Spring Cloud封装了Netflix 公司开发的Eureka模块来实现服务治理
不愿意做鱼的小鲸鱼
2022/09/26
8720
微服务(三)——Eureka服务注册与发现&Eureka集群
【Spring Cloud】004-Eureka服务注册与发现
Eureka是Netflix的一个子模块,也是核心模块之一。Eureka是基于REST的服务,用于定位服务,以实现云端中间件层服务发现和故障转移,服务注册与发现对于微服务来说是非常重要的,有了服务注册与发现,只需要使用服务的标识符,就可以访问到服务,而不需要修改服务调用的配置文件了,功能类似于Dubbo的注册中心,比如Zookeeper;
訾博ZiBo
2025/01/06
1360
【Spring Cloud】004-Eureka服务注册与发现
【SpringCloud】四、Eureka集群
Eureka Server的一个节点:http://eureka7002.com:7002/
Yuyy
2022/06/28
2280
【SpringCloud】四、Eureka集群
Eureka集群环境搭建
前言: Eureka已经停止更新了,在新的项目中,不推荐使用,通过对周阳老师视频的学习,本篇文章主要是简单介绍下Eureka,以及如何搭建集群环境的Eureka,让大家对Eureka有个初步的了解。
全栈程序员站长
2022/09/05
8210
SpringCloud2020 学习笔记(十)cloud-eureka-server7001 cloud-eureka-server7002 Eureka集群安装
<artifactId>cloud-eureka-server7002</artifactId>
cookily
2020/10/22
7000
SpringCloud2020 学习笔记(十)cloud-eureka-server7001 cloud-eureka-server7002 Eureka集群安装
SpringCloud 服务注册与发现
​ SpringCloud 封装了 Netflix 公司开发的 Eureka 模块来实现服务治理。 在传统的 RPC 远程调用框架中, 管理每个服务与服务之间依赖关系比较复杂, 所以需要使用服务治理管理服务与服务之间依赖关系, 了以实现服务调用、 负载均衡、容错等, 实现服务发现与注册 。
OY
2022/03/17
7680
SpringCloud 服务注册与发现
Springcloud:Eureka服务注册与发现
@EnableEurekaServer加上个注解就是Eureka的服务端了,我们并不需要写什么业务员,启动之后访问
冷环渊
2021/10/19
5030
SpringCloud2020 学习笔记(十二)支付模块做集群 cloud-provider-payment8001 cloud-provider-payment8002
如果不熟练模块搭建可以参考: SpringCloud2020 学习笔记(四) cloud-provider-payment8001支付模块
cookily
2021/12/07
3960
SpringCloud2020 学习笔记(十二)支付模块做集群 cloud-provider-payment8001 cloud-provider-payment8002
SpringCloud---Eureka
Spring Cloud封装了Netflix 公司开发的Eureka模块来实现服务治理
大忽悠爱学习
2021/11/15
3320
02Eureka服务注册与发现
访问:C:\Windows\System32\drivers\etc 下的 host 文件,添加如下内容
Remember_Ray
2020/10/29
3350
02Eureka服务注册与发现
SpringCloud2020 学习笔记(十三)actuator微服务信息完善 实例名 服务ip 多网卡 细节
项目地址: https://github.com/cookily/cloud2020.git
cookily
2021/12/07
3030
SpringCloud2020 学习笔记(十三)actuator微服务信息完善 实例名 服务ip 多网卡 细节
SpringCloud2020 学习笔记(八)cloud-provider-payment8001支付模块入驻eurekaServer注册中心
项目地址: https://github.com/cookily/cloud2020.git
cookily
2020/10/22
4900
SpringCloud2020 学习笔记(八)cloud-provider-payment8001支付模块入驻eurekaServer注册中心
SpringCloud搭建Eureka集群
参考cloud-eureka-server7001新建模块cloud-eureka-server7002。
全栈程序员站长
2022/08/14
2980
SpringCloud搭建Eureka集群
SpringCloud之Eureka
Spring Cloud 封装了 Netflix 公司开发的 Eureka 模块来实现服务治理。
shaoshaossm
2022/12/27
2560
SpringCloud之Eureka
搭建Eureka注册中心集群 ,实现负载均衡
问题:微服务RPC远程服务调用最核心的是什么  高可用,试想你的注册中心只有一个only one, 它出故障了那就呵呵( ̄▽ ̄)"了,会导致整个为服务环境不可用,所以 解决办法:搭建Eureka注册中心集群 ,实现负载均衡+故障容错 
一个风轻云淡
2022/11/13
3160
搭建Eureka注册中心集群 ,实现负载均衡
SpringCloud微服务:Eureka组件之服务注册与发现
角色职责如下: 1)、Register:服务注册中心,它是一个Eureka Server ,提供服务注册和发现功能。 2)、Provider:服务提供者,它是一个Eureka Client ,提供服务。 3)、Consumer:服务消费者,它是一个Eureka Cient ,消费服务。
知了一笑
2019/07/19
7650
SpringCloud微服务:Eureka组件之服务注册与发现
【云原生】springcloud12——服务网关Gateway
第一代网关是zuul,zuul核心人员走了两个,zuul2的核心开发人员分歧较大,研发过久,spring公司等不及,自己研发的Gateway网关。
半旧518
2022/10/26
6200
【云原生】springcloud12——服务网关Gateway
SpringCloud服务注册与发现之Eureka
在自我保护模式中,Eureka Server会保护服务注册表中的信息,不再注销任何服务实例。 它的设计哲学就是宁可保留错误的服务注册信息,也不盲目注销任何可能健康的服务实例。一句话讲解:好死不如赖活着 综上,自我保护模式是一种应对网络异常的安全保护措施。它的架构哲学是宁可同时保留所有微服务(健康的微服务和不健康的微服务都会保留)也不盲目注销任何健康的微服务。使用自我保护模式,可以让Eureka集群更加的健壮、稳定。
cheese
2023/10/25
5440
SpringCloud服务注册与发现之Eureka
【云原生】springcloud10——人生苦短,我用OpenFeign
前面我们已经讲了服务注册的Eureka,Zookeeper,Consult,以及调用部分的的Ribbon和LoadBalancer,现在我们将学习服务调用的第二部分组件,Feign和OpenFeign,由于Feign已经停更了,我们直接进入OpenFeign的学习。
半旧518
2022/10/26
3220
【云原生】springcloud10——人生苦短,我用OpenFeign
06-SpringCloud Eureka
Spring Cloud封装了Netflix 公司开发的Eureka模块来实现服务治理
彼岸舞
2021/08/24
3970
推荐阅读
相关推荐
微服务(三)——Eureka服务注册与发现&Eureka集群
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档