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
猜你喜欢
- 背包问题主要是指一个给定容量的背包、若干具有一定价值和重量的物品,如何选择物品放入背包使物品的价值最大。其中又分01背包和无限背包,这里主要
- 目录小写 string 与大写 String声明与初始化 stringstring 的不可变性正则 string 与原义 stringstr
- android线程消息机制主要由Handler,Looper,Message和MessageQuene四个部分组成。平常在开发中,我们常用来
- 问题描述:java 中inputstream流 转成string,再将String转换会inputStream,下载下来的文件,内容损坏,例
- 本文的目的是把json串转成map键值对存储,而且只存储叶节点的数据比如json数据如下:{responseHeader:{status:0
- C#实现委托namespace Delegate{ delegate void DGSayiHi(string n
- 在logback.xml中加上该配置,包名如:com.xxx<logger name="packageName"
- 前言好记性不如烂笔头,日期时间类那么花哨不如记下来多看两眼。提示:以下是本篇文章正文内容,下面案例可供参考一.日期时间类的包代码如下(示例)
- 参考文献:https://www.jb51.net/article/232858.htm使用springboot 2 构建项目,调试代码的时
- XML的主要用途--数据存储和数据描述--是一个优良的配置文件--相当于一个小型数据库--XML不依赖于任何一种编程语言,是独立的W3C提供
- 本文实例为大家分享了winform实现五子棋游戏的具体代码,供大家参考,具体内容如下利用数组,根据新旧数组值的不同,获取那个点是什么棋子;说
- 在做项目时经常会遇到选择本地图片的需求,以前都是懒得写直接调用系统方法来选择图片,但是这样并不能实现多选效果,最近又遇到了,所以还是写一个d
- 问题描述Feign 在请求时是不会将 request 的请求头带着请求的,导致假如 Feign 调用的接口需要请求头的信息,比如当前用户的
- 1. 安装JDK解释: JDK是Java编写环境--开发环境注: 安装路径不可出现中文及标点符号。比如:D:\Java\jdk81.1 下载
- 今天看《第一行代码》上面关于拍照和从相册选取图片那一部分,发现始终出不来效果,所以搜索其他资料学习一下相关知识,写一个简单的Demo。&nb
- 需求:用TreeSet集合存储多个学生信息(姓名,语文成绩,数学成绩),并遍历该集合;要按照总分从高到低进行排序分析:1.创建学生类 成员变
- 目录一、Java 类加载过程1、字节码编译2、加载3、连接4、初始化总结一、Java 类加载过程1、字节码编译编写好 Java 源码 Stu
- 估计学过Unix开发但是没有细致学习Java的同学们会疑惑了,操作系统里面是没有所谓的守护线程的概念,只有守护进程一说,但是Java语言机制
- 在文章中,我们将对输入到机器学习模型中的数据集进行预处理。这里我们将对一个硬币数据集进行预处理,以便以后在监督学习模型中进行训练。在机器学习
- 本文实例讲述了Java权重随机的实现方法。分享给大家供大家参考。具体分析如下:权重随机在项目中经常用到,所以我把它抽象到一个工具类中。一般实