when分支语句
when分支取代了Java原有的switch语句
var score = 'B'when(score){'A' -> println("优秀")'B' -> println("良好")'C' -> println("中")'D' -> println("及格")else -> println("不及格")}
- 不需要使用case关键字
- case值后的冒号改为使用箭头(->)
- default改为更有意义,更明确的wlse
除此之外,
- when分支可以匹配多个值
- when分支后的值不要求是常量,可以是任意表达式
- when分支对条件的表达式的类型没有任何要求
when(score){'A', 'B' ->{println("优秀,百尺竿头更进一步")}'C','D' ->{println("中")}else -> {println( "不及格")}}
when分支处理范围
val age = Random(100).nextInt()var str = when (age){in 10 ..25 -> "当年少青衫"in 26.. 50 -> "1111111"in 51..80 -> "2222222222"else -> "其他"}println(str)
除了范围还可以使用is判断是否为某种类型而进入判断