2019-08-12 Kotlin整理 控制语句详解
2019-08-12 本文已影响0人
喜欢萌妹子的少年
WechatIMG84.png
Kotlin中的三元运算符
- 在Kotlin中其实是不存在三元运算符(condition ? then : else)这种操作的。
- 那是因为if语句的特性(if表达式会返回一个值)故而不需要三元运算符。
for语句
- Kotlin废除了Java中的for(初始值;条件;增减步长)这个规则。但是Kotlin中对于for循环语句新增了其他的规则,来满足刚提到的规则。
- for循环提供迭代器用来遍历任何东西
- for循环数组被编译为一个基于索引的循环,它不会创建一个迭代器对象
1、新增的规则,去满足for(初始值;条件;增减步长)这个规则
- 递增
关键字:until
范围:until[n,m) => 即大于等于n,小于m - 递减
关键字:downTo
范围:downTo[n,m] => 即小于等于n,大于等于m ,n > m - 设置步长
step
使用数组的indices属性遍历
var arrayListTwo = arrayOf(1,3,5,7,9)
for (i in arrayListTwo.indices){
println("arrayListTwo[$i] => " + arrayListTwo[i])
}
使用数组的withIndex()方法遍历
var arrayListTwo = arrayOf(1,3,5,7,9)
for ((index,value) in arrayListTwo.withIndex()){
println("index => $index \t value => $value")
}
使用列表或数组的扩展函数遍历
- 数组或列表有一个成员或扩展函数iterator()实现了Iterator<T>接口,且该接口提供了next()与hasNext()两个成员或扩展函数
- 其一般和while循环一起使用
when语句
- 在Kotlin中已经废除掉了Java中的switch语句。而新增了when(exp){}语句。
- when语句不仅可以替代掉switch语句,而且比switch语句更加强大
- 和逗号结合使用,相当于switch语句中的不使用break跳转语句
when(1){
// 即x = 1,2,3时都输出1。
1 , 2 , 3 -> {
println("1")
}
5 -> {
println("5")
}
else -> {
println("0")
}
}
- 条件可以使用任意表达式,不仅局限于常量
var num:Int = 5
when(num > 5){
true -> {
println("num > 5")
}
false ->{
println("num < 5")
}
else -> {
println("num = 5")
}
}
检查值是否存在于集合或数组中
- 操作符
(in) 在
(!in) 不在 - 限定:只适用于数值类型
检查值是否为指定类型的值
- 操作符
是(is)
不是(!is) - 值得注意的是,Kotlin的智能转换可以访问类型的方法和属性