kotlin练习 - when分支结构练习

kotlin练习 - when分支练习

when表达式

1
2
3
4
5
when(expression){
expression1 -> statements...
expression2 -> statements...
else -> statements...
}
  • 例子1
1
2
3
4
5
6
7
8
9
10
fun main(args: Array<String>) {
var score = 'B'
when (score) {
'A' -> println("优秀")
'B' -> println("良好")
'C' -> println("中")
'D' -> println("及格")
else -> println("不及格")
}
}
  • 例子2
1
2
3
4
5
6
7
8
9
10
11
12
fun main(args: Array<String>) {
var score = 'c'
when (score) {
'A', 'a' -> println("优秀")
'B', 'b' -> println("良好")
'C', 'c' -> println("中")
'D', 'd' -> println("及格")
else -> {
println("不及格")
}
}
}
  • 例子3
1
2
3
4
5
6
7
8
9
10
11
fun main(args: Array<String>) {
var score = 'A'
var str = "EFGH"
when (score) {
str[0]-4,str[1]-4 -> println("优秀")
str[2]-4,str[3]-4 -> println("中")
else -> {
println("不及格")
}
}
}
  • 例子4
1
2
3
4
5
6
7
8
9
fun main(args: Array<String>) {
var date = Date()
when (date) {
Date() -> println("优秀")
else -> {
println("不及格")
}
}
}
  • 例子5
1
2
3
4
5
6
7
8
9
10
11
fun main(args: Array<String>) {
var score = 'B'
var str = when (score) {
'A' -> "优秀"
'B' -> "良好"
'C' -> "中"
'D' -> "及格"
else -> "不格"
}
println(str)
}
  • 例子6
1
2
3
4
5
6
7
8
9
10
11
fun main(args: Array<String>) {
var score = Random().nextInt(100)
var str = when (score) {
in 90..100 -> "优秀"
in 80..90 -> "良好"
in 70..80 -> "中"
in 60..70 -> "及格"
else -> "不及格"
}
println("${score} = ${str}")
}
  • 例子7
1
2
3
4
5
6
7
8
9
10
fun main(args: Array<String>) {
var inputPrice = "09"
println(realPrice(inputPrice))
}
fun realPrice(inputPrice:Any)=when(inputPrice){
is String -> inputPrice.toDouble()//如果inputPrice类型为String,返回该字符的Double值
is Int -> inputPrice.toDouble()//如果inputPrice类型为Int,返回该字符的Double值
is Double -> inputPrice
else -> 0.0
}
  • 例子8
1
2
3
4
5
6
7
8
9
10
11
12
13
fun main(args: Array<String>) {
println("请输入内容")
val string = readLine()//读取控制台的一行输入 类型: String?
if(string!=null){
when{
//每个分支条件都需要是布尔表达式
string.matches(Regex("\\d+")) -> println("您输入的全是数字")
string.matches(Regex("[a-zA-Z]+")) -> println("您输入的全是字母")
string.matches(Regex("[a-zA-Z0-9]+")) -> println("您输入的既有数字也有字母")
else -> println("您输入的内容中包含了特殊字符")
}
}
}