Kotlin的while循环和Java完全一样
1.while循环
Kotlin中有while循环和do while循环
//condition 为true 执行循环体
while (condition){
}
//循环体第一次会无条件执行,此后,当condition为true时才执行
do{
}while (condition)
2.迭代数字:区间和数列
Kotlin中使用..运算符来表示区间,迭代区间中所有的值,这样的区间称为数列
for (i in 1..10) {
Log.i("zhoujian", "i=" + i);
}
迭代1..10 左右区间都包含
for(i in 0 until 8 step 2){
Log.i("zhoujian", "i=" + i);
}
until包含左边,不包含右边
05-16 19:31:17.388 32034-32034/com.zhoujian.kotlindemo I/zhoujian: i=0
05-16 19:31:17.388 32034-32034/com.zhoujian.kotlindemo I/zhoujian: i=2
05-16 19:31:17.388 32034-32034/com.zhoujian.kotlindemo I/zhoujian: i=4
05-16 19:31:17.388 32034-32034/com.zhoujian.kotlindemo I/zhoujian: i=6
for(i in 8 downTo 0 step 2){
Log.i("zhoujian", "i=" + i);
}
downTo 左右区间都包含
05-16 19:34:41.301 32726-32726/com.zhoujian.kotlindemo I/zhoujian: i=8
05-16 19:34:41.301 32726-32726/com.zhoujian.kotlindemo I/zhoujian: i=6
05-16 19:34:41.301 32726-32726/com.zhoujian.kotlindemo I/zhoujian: i=4
05-16 19:34:41.301 32726-32726/com.zhoujian.kotlindemo I/zhoujian: i=2
05-16 19:34:41.301 32726-32726/com.zhoujian.kotlindemo I/zhoujian: i=0
3.map和list
二种创建map的方式,一种to,一种Pair
//第一种创建map的方式
var firstMap: HashMap<Int, String> = hashMapOf(1 to "one", 2 to "two")
//第二种创建map的方式
var secondMap: HashMap<Int, String> = hashMapOf(Pair(1, "one"), Pair(2, "two"))
遍历map的三种方式
扫描二维码关注公众号,回复:
9327055 查看本文章
//第一种遍历方式
for (item in firstMap) {
Log.i("zhoujian", "key=" + item.key);
Log.i("zhoujian", "value=" + item.value);
}
//第二种遍历方式
val iterator = firstMap.iterator()
while (iterator.hasNext()) {
val item = iterator.next()
Log.i("zhoujian", "key=" + item.key);
Log.i("zhoujian", "value=" + item.value);
}
//第三种遍历方式
firstMap.forEach { (key, value) ->
Log.i("zhoujian", "key=" + key);
Log.i("zhoujian", "value=" + value);
}
打印结果:
05-16 19:47:47.640 4156-4156/com.zhoujian.kotlindemo I/zhoujian: key=1
05-16 19:47:47.640 4156-4156/com.zhoujian.kotlindemo I/zhoujian: value=one
05-16 19:47:47.640 4156-4156/com.zhoujian.kotlindemo I/zhoujian: key=2
05-16 19:47:47.640 4156-4156/com.zhoujian.kotlindemo I/zhoujian: value=two
创建list
var lists = listOf<String>("one", "two", "three")
三种遍历集合的方式
for (item in lists) {
Log.i("zhoujian", "item=" + item);
}
val iterator = lists.iterator()
while (iterator.hasNext()) {
val item = iterator.next()
Log.i("zhoujian", "item=" + item);
}
lists.forEach { item ->
Log.i("zhoujian", "item=" + item);
}
打印结果:
05-16 19:58:39.388 6753-6753/com.zhoujian.kotlindemo I/zhoujian: item=one
05-16 19:58:39.388 6753-6753/com.zhoujian.kotlindemo I/zhoujian: item=two
05-16 19:58:39.388 6753-6753/com.zhoujian.kotlindemo I/zhoujian: item=three
4. 使用in检查集合和区间的成员
kotlin中使用in来检查一个值是否在区间中,或者!in 来检查一个值是否不在区间中
fun isLatter(c:Char)=c in 'a'..'z' || c in 'A'.. 'Z'
fun isNotDigit(c:Char)= c !in '0'..'9'
2019-05-18 14:07:31.091 20639-20639/? I/zhoujian: isLatter=true
2019-05-18 14:07:31.091 20639-20639/? I/zhoujian: isNotDigit=true
用in检查作为when分支
fun recognize(c: Char) = when (c) {
in '0'..'9' -> "是个数字"
in 'a'..'z', in 'A'..'Z' -> "是个字母"
else -> "我也不知道是啥!"
}