有java基础的同学知道switch case语句
int day =1;
switch (day){
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
case 4:
System.out.println("星期四");
break;
case 5:
System.out.println("星期五");
break;
case 6:
System.out.println("星期六");
break;
case 7:
System.out.println("放假了");
break;
default:
System.out.println("没有这个日子");
}
如果用kotlin来实现,该怎么实现类似的业务呢?
When 表达式
when 将它的参数和所有的分支条件顺序比较,直到某个分支满足条件。
when(day){
1-> println("今天是周一")
2-> println("今天是周二")
3 -> println("今天是周三")
4 -> println("今天是周四")
5 -> println("今天是周五")
6 -> println("今天是是周六")
7-> println("放假了")
else -> println("没有这个日子")
}
发现kotlin的when 和java的 switch....case 差不多
但是也存在不同,毕竟kotlin说是综合了很多的语言的优点而应运而生的
kotlin when返回值
java的switch是没有办法直接返回值的,只能是case...或者default给switch外面的变量赋值
String str =null;
int day =1;
switch (day){
case 1:
str="星期一";
break;
case 2:
str="星期二";
break;
default:
str="放假了";
}
而kotlin
var day=3
var str = when(day){
1-> "今天是周一"
2-> "今天是周二"
else -> "放假了"
}
发现kotlin的when是不是更好用
when的代码块
var str = when(day){
1-> {
//.............代码块
"今天是周一"
}
2-> {"今天是周二"}
else -> {"放假了"}
}
代码块可以有很多业务逻辑,但是最后一行值必定是返回值
when的分支条件
var str = when(day){
"1".toInt()-> {
//.............代码块
"今天是周一"
}
2-> {"今天是周二"}
else -> {"放假了"}
}
由此可见when的分支可以直接是定位值也可以是某个表达式
也可以是判断条件
var a:Any= Object()
var st3 = when(a){
a is Int -> 10
a is Boolean -> true
a is String-> "我是字符串类型"
else -> null
}
var st4 = when(day){
1,2,3,4,5-> {
//.............代码块
"今天是周一"
}
6,7-> {"今天是周末"}
else -> {"没有这个日子"}
}
多条件分支,这种还可以用逗号分隔文章来源:https://www.toymoban.com/news/detail-611195.html
when的值区间
var str2 = when(day){
in 1..5-> {
//.............代码块
"今天是上班日"
}
in 6..7-> {"今天是周末"}
else -> {"没有这个日子"}
}
when取代 if-else if链
var str ="6"
var day2= when{
str.equals("1") ->"星期一"
str.equals("2") ->"星期二"
str.equals("3") ->"星期三"
str.equals("4") ->"星期四"
str.equals("5") ->"星期五"
str.equals("6") ->"星期六"
str.equals("7") ->"星期天"
else ->"没有这个日子"
}
println(day2)
配合循环使用文章来源地址https://www.toymoban.com/news/detail-611195.html
for (day in 1..8){ //依次去看今天是星期几
var info = when(day){
1->"星期一"
2->"星期二"
3->"星期三"
4->"星期四"
5->"星期五"
6->"星期六"
7->"星期天"
else ->"过年了"
}
println(info)
}
到了这里,关于kotlin之when表达式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!