引言
在java中,有 if()else{} ,有switch(){} , for , while ,之类语句。但是没见when,这里是什么意思???
这里先说一下在kotlin中,when就是java中的switch ,选择语句。
控制语句/选择语句介绍
控制语句
有 if when
if表达式
kotlin的if表达式基本上和java一样,都是if,else,else if 。
fun main(args:Array<String>){
var a = 8
var b = 8
if (a > b){
println("Maximum is a")
}else if (a < b){
println("Minimum is b")
}else{
println("a = b")
}
}
通过上面的代码可以看出来基本和Java的if语法差不多。
但是还是有些区别:kotlin的if语句的结果可以赋值给变量。
这个就有意思了,我们可以简化代码。
when表达式
when(test){
0-> println("0")
1-> println("1")
2-> println("2")
3-> println("3")
else-> println("else")
}
相比switch-case简化了不少,when除了可以接受Int数据类型的常量,还可以接受其他数据类型的常量,注意else等价于default。除了可以接受不同的数据类型的常量,也可以接受任意表达式。
when(test){
in 0..3-> println("0..3") // 在[0, 3]区间中
in 0 until 3-> println("0 until 3") // 在[0, 3)区间中
!in 3..5-> println("!in 3..5") // 不在[3, 5]区间中
else-> println("else")
}
when也可以在某些情况取代
if(){
}else if(){
}else{
}
var a = 3
var b = 3
// 当when不需要传入参数,所有的分支条件都是简单的布尔表达式。
when {
a > b -> println("Maximum is a")
a < b -> println("Minimum is b")
else -> println("a = b")
}
循环语句
Kotlin的基础循环语句:for,while,do ... while
for循环
kotlin的for循环和Java的还是有不少区别的,kotlin的for循环更加的简洁。
for (i in 0..5){ // [0, 5]区间循环
println(i)
}
for (i in 0 until 5){ // [0, 5)区间循环,不包含5
println(i)
}
for (i in 5 downTo 0){ // [5, 0]区间循环
println(i)
}
for (i in 10 downTo 0 step 2) { // [10, 0]区间每隔两个打印
println(i)
}
while 循环和 do ... while
while和do…while循环和Java一样的。
var test0 = 10
var test1 = 10
while (test0 > 0) {
println("test0:$test0")
}
do {
println("test1:$test1")
} while (test1 > 0) // while 在此处可见