Kotlin编程循环控制示例详解
作者:南巷羽 时间:2022-06-02 11:53:54
本文总览
本篇来学习Kotlin循环结构的知识
1. While循环
while
循环用于重复迭代代码块,只要给定条件为 true就会执行一次循环代码块。若条件为 false,则直接跳过循环代码块执行后面代码。
while (x > 0) { x-- } // 当条件 x>0 成立,x 就会减一
do-while
循环 与 while
循环相类似,也可用于重复执行迭代代码块。但有差别的点是:它会先执行一次循环代码块,才检测条件是否满足,换句话说:它会至少执行一次 循环代码块。
do { val y = retrieveData() } while (y != null)
// 不管while 条件是否满足,都会先执行一次 y = retrieveData()
有时候会看到一些无限循环的示例,只要将条件语句设定为 true,就会一直循环执行 迭代代码块:
do {
// 循环代码块
}
while (true)
2. For循环
for
循环用于迭代或循环 数组,范围,集合等的元素,可以对任何提供迭代器(iterator)的对象进⾏遍历。它的语法格式:
for (item in collection) {// 逻辑处理}
⼀个成员函数或者扩展函数 iterator() 返回 Iterator<>
有⼀个成员函数或者扩展函数 next()
有⼀个成员函数或者扩展函数 hasNext() 返回 Boolean
可以用在数字区间上迭代,使用区间表达式
for (i in 1..3) { println(i) } // 逐个打印 区间[1,3]中的数字
遍历数组,同时打印出元素下标和元素值
for ((index, value) in array.withIndex()) { // 使用 库函数withIndex()
println("the element at $index is $value") // 逐个打印元素的下标和数值
}
forEach
语句:使用这个语句遍历数组或集合,比for
语句更加简便,语法形式如下:
调用者.forEach() {
println("it=${it}") // 逐个打印元素
}
日常开发中,结合实际业务场景来选取使用 for
还是 for-each
。
3. break和continue
在 Kotlin 中有三种结构化跳转表达式:
return 直接返回方法/函数的值,结束;
break 跳出本次循环,继续执行后面业务代码
continue 跳出本次循环,直接进入下一次循环
3.1 break语句
break
最常用在 java 中,常与与 switch
组成 switch-break 语句。但在 Kotlin 中没有switch这个语法,break
语句通常与 if
表达式 一起用:
for(n in 1..10){
if (n==5) {
break // 在 n = 5时跳出循环
}
}
与 if语句组合,一旦满足给定的条件时,就会终止本次循环。
3.2 continue语句
continue
用于跳过本次迭代并将控制流跳转到下一次迭代,通常与 if
表达式 一起使用,以跳过指定条件的当前循环。
for (n in 1..5){
...
if(n==2||n==4) {
continue // 只要满足上述条件,就会执行该语句跳出本次循环
}
...
}
其实 continue 在Java或者Kotlin用法是一样的,都很好理解和记住。
来源:https://juejin.cn/post/7133420899453108232
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
java实现图片写入高清字体及带边框的方法
C#中Equals和GetHashCode使用及区别
spring boot 静态资源处理方法
![](https://img.aspxhome.com/file/2023/6/108356_0s.png)
C#怎样实现文件下载断点续传
![](https://img.aspxhome.com/file/2023/5/100385_0s.png)
Java注释代码执行方法解析
maven scope provided和runtime的例子说明
![](https://img.aspxhome.com/file/2023/5/88075_0s.jpg)
springboot集成shiro详细总结
![](https://img.aspxhome.com/file/2023/1/105911_0s.png)
spring-boot中使用spring-boot-devtools的实现代码
Java中的字符串常量池详细介绍
C/C++混合编程之extern “C”的使用示例
![](https://img.aspxhome.com/file/2023/3/109783_0s.png)
SpringBoot整合Pulsar的实现示例
Java定时器Timer简述
基于spring boot 的配置参考大全(推荐)
带你了解Spring中bean的获取
![](https://img.aspxhome.com/file/2023/2/73052_0s.png)
C#中动态显示当前系统时间的实例方法
C#中深拷贝和浅拷贝的介绍与用法
![](https://img.aspxhome.com/file/2023/8/98198_0s.jpg)
Springboot整合PageOffice 实现word在线编辑保存功能
![](https://img.aspxhome.com/file/2023/7/88517_0s.png)
Java通过FTP服务器上传下载文件的方法
在Spring环境中正确关闭线程池的姿势
![](https://img.aspxhome.com/file/2023/1/60151_0s.png)
springBoot加入thymeleaf模板的方式
![](https://img.aspxhome.com/file/2023/6/60056_0s.png)