1,控制流使用方法
var i = 1
if(i < 2){
println("i小于2")
}else{
println("i不小于2")
}
在 Kotlin 中,if 是表达式,比如它可以返回一个值。是除了condition ? then : else)之外的唯一一个三元表达式
//传统的写法
var a = 1
var b = 2
var index = a
if(a > b){
index = a
}else{
index = b
}
println("最后输出值:" + index)
//作为表达式可以写为
var index1 = if(a > b) a else b
println("最后输出值:" + index1)
//if 还可以作为块,最后一个表达式为该快的值
var index2 = if(a > b){
a
}else {
b
}
println("最后输出值:" + index2)
when 和 java语言你们的 switch case 的用法差不多 {}可以省略不写 可也代替if(){} else if(){} else{}
var index3 = 2
when(index3){
1 ->{
print("x = 1")
}
2 ->{
print("x = 2")
}
else ->{
print("x = 其他值")
}
}
//如果有分支可以用同样的方式处理的话,分支条件可以连在一起:
when(index3){
1,2 ->{
print("x = 1 or x = 2")
}
else ->{
print("x = 其他值")
}
}
//可以用任意表达式作为分支判断条件
when(index3){
checkNumber() ->{
print("满足此表达式")
}
else ->{
print("x = 其他值")
}
}
//可以用 in 或者 !in 检查值是否值在一个集合中:
var index4 = 3
when (index4) {
in 1..10 -> print("x is in the range")
!in 10..20 -> print("x is outside the range")
else -> print("none of the above")
}
2,for循环 list map 迭代
fun main(args: Array<String>) {
//声明list不指定类型数组 自动匹配类型
var list = listOf("aa","bb","Ccc")
//迭代list 数组数据
// $ 字符串模板 可以直接显示 i为下标 e为值
for((i,e) in list.withIndex()){
println("$i $e")
}
//也可以其他方式迭代
for(e in list){
println("$e")
}
//声明list指定类型数组 list:List<T> 可以是任何对象
var list1:List<Int> = listOf(1,2)
for(i in list1){
println(i)
}
//声明map for循环通过 key value 遍历
var map = mapOf("1" to "ys","2" to "ll")
for ((k, v) in map) {
println("$k -> $v")
}
}
3,while循环
while 和 do...while 和java一样的用法
var x:Int = 10
while (x > 0) {
x--
}
do {
val y = add()
} while (y != null) // y 在这是可见的
while 循环是支持 return break continue 等操作的 和java 你们一样的用法
4, Set迭代
//set迭代自动去重复 通过 froEach 方法
val mSet = mutableSetOf(1, 8, 2, 9, 1, 4, 7, 9, 0, 0, 8)
mSet.forEach {
println(it)
}
控制台输出值为 1 8 2 9 4 7 0
List也可以通过forEach方法迭代
网友评论