一、流程控制
1.if
val i = 1 if (i > 0) { print("Big") } else { print("Small") }
使用if,赋值。
val i = 1 val message = if (i > 0) "Big" else "Small" print(message)
fun getLength(text: String?): Int { return if (text != null) text.length else 0 }
上边的简写,Elvis 表达式;
fun getLength(text: String?): Int { return text?.length ?: 0 }
2.when
val i: Int = 1 when(i) { 1 -> print("一") 2 -> print("二") else -> print("i 不是一也不是二") }
val i: Int = 1 val message = when(i) { 1 -> "一" 2 -> "二" else -> "i 不是一也不是二" // 如果去掉这行,会报错 } print(message)
二、循环
1、for
val oneToThree = 1..3 for (i in oneToThree) { println(i) } for (i in 6 downTo 0 step 3) { println(i) } for (i in 0..10) { println(i) //012345678910 } for (i in 0 until 10) { println(i) //0123456789 } for (i in 0..10 step 2) { print(i) //0 2 4 6 8 10 } //获取元素 var abc = listOf("a", "b", "c") for (i in abc) { print(i) } // 获取下标 for (index in abc.indices) { print("$index") // 0 1 2 } // 获取元素和下标 for ((index, value) in abc.withIndex()) { print("$index:$value ") //0:a 1:b 2:c }
2、while
var i = 0 while (i <= 2) { println(i) i++ } var j = 0 do { println(j) j++ } while (j <= 2)