前言:
本篇文章是《Kotlin学习探索》系列的第四篇,上一篇文章主要学习了:Kotlin的基本数值类型、比较两个数字(三个等号和二个等号的区别)、Kotlin的数值类型转换、数组以及字符串模板的使用。本篇文章主要学习的知识点有:Kotlin 的条件控制以及Kotlin 的循环控制
Kotlin的条件控制
所谓的条件控制,简单理解就是开发人员设定的逻辑条件,允许则执行允许的代码;条件不允许则执行条件不允许的代码。也就是我们在Java中经常使用到的If、else 等这些条件判断,下面是Kotlin常见的条件控制语句
- Kotlin的if、else语句
跟Java的条件控制一样,如图:
var x = 233
if(x > 233){
println("x 大于 233")
}else if(x == 233){
println("x 等于 233")
}else{
println("x 小于 233")
}
Kotlin也可以这样将条件控制的结果直接赋值给变量,写法如下:
var a = 1
var b = 2
val c = if (a >= b) a else b
println("c 的值为 $c") //c 的值为2
- Kotlin的循环控制与区间
关于区间,在上一篇文章里面有说过,使用 in可以判断某个数据类型是否在指定区间内。例如,我们拿到用户的手机号(注册或者登录的场景)就可以对用户输入的数据进行遍历判断,符合条件就进行下一步的逻辑、不符合条件就输出格式不符的反馈提示
val x = 1
val y = 9
if (x in 0..10) {
println("x 符合输入条件")
}
- Kotlin的When语句表达式
Kotlin的When语句很像Java中的switch语句,when语句是将它的参数和所有的分支条件进行顺序比较,直到某个分支满足条件(等于参数)则执行该分支的内部逻辑,when语句中的else就相当于switch语句中的default。如果其他分支都不满足参数条件,就会执行 else 分支。
值得注意的是,如果很多分支需要用相同的方式处理(一个参数满足多种条件、例如一月到四月都属于春季),则可以把多个分支条件放在一起,用逗号分隔:,这种就类似于Java中的case穿透;另外、when语句也可以搭配in来进行区间判断、使用in也可以判断元素是否在集合内,参考代码如下:
var x = 1
//when语句常规用法
when (x) {
1 -> println("1月")
2 -> println("2月")
3 -> println("3月")
else -> {
println("x 不是 1 ,也不是 2,也不是 3")
}
}
//when语句穿透
when (x) {
1, 2, 3 -> println("输入的是春季")
4, 5, 6 -> println("输入的是夏季")
else -> println("不是春夏季")
}
//when语句搭配区间使用
when (x) {
in 1..12 -> println("输入的是正确月份")
else -> println("输入有误、请检查月份是否有误")
}
// when语句搭配in,判断元素是否在集合内
val listData = setOf("Python", "Java", "Hadoop")
when {
"Hadoop" in listData -> println("Hadoop是Java的大数据框架")
"PHP" in listData -> println("这啥玩意儿")
//最后输出:Hadoop是Java的大数据框架
}
Kotlin的循环语句与循环控制
所谓的循环控制就是对数据进行循环遍历然后内部对其进行逻辑筛选和预处理。
Java常见的循环有for循环和while循环,我们知道Kotlin是对Java的一种包装,因此Kotlin也有类似的循环语句
- for循环
下面是常见的for循环写法:
//for循环写法一,使用in区间:
for (i in 1..5)
print(i) // 打印结果为: "12345"
//for循环写法二,对数组或者List进行遍历(两种写法):
//定义数组
val listData = listOf("Java", "Python", "Go")
//直接for循环打印
for (item in listData) {
//最后打印:"Java", "Python", "Go"
println(item)
}
//for循环 打印索引和对应的属性值
for (index in listData.indices) {
//索引是: 0 对应的属性值:Java
//索引是: 1 对应的属性值:Python
//索引是: 2 对应的属性值:Go
println("索引是: $index 对应的属性值: ${listData[index]}")
}
- while循环
说到while循环,首先就是它的基本格式:
while( 布尔表达式 ) {
//满足条件就输出循环内容 doing sth
}
看到这个格式就想起了万年的死循环梗,
while (true){
print("改革春风吹满地,中国人民真争气")
}
- do…while 循环
do…while 循环语句 相对于while语句而言,算是一种拓展。在检查while()条件是否为真之前,该循环首先会执行一次do{ }之内的语句,然后在while()内检查条件是否为真,如果条件为真的话,就会重复do...while这个循环,直至while()为假。
do-while 循环语法 格式:
do {
//循环体语句;
}
while (布尔条件表达式);
好了,上面说的都是循环语句、说完循环语句在说循环控制。
循环控制:是指在循环语句内根据使用逻辑进行主观设置,让循环停止执行、或者跳出循环、或者跳出本次循环执行下一次的循环。跟Java一样,Kotlin的循环控制也有return、break、continue
- return返回
- break 直接跳出循环
- continue 跳过当前循环,继续后面的循环
总结:
本篇文章主要学习了:Kotlin 的条件控制以及Kotlin 的循环控制
如果这篇文章对您有开发or学习上的些许帮助,希望各位看官留下宝贵的star,谢谢。
Ps:著作权归作者所有,转载请注明作者, 商业转载请联系作者获得授权,非商业转载请注明出处(开头或结尾请添加转载出处,添加原文url地址),文章请勿滥用,也希望大家尊重笔者的劳动成果