Kotlin三:流程控住 归纳总结
2020-02-23 本文已影响0人
大川的川
你瞅啥?
- if 分支语句 【我们不做过多分析,和Java几乎无异】
-
when 分支语句 【可取代Java原有的switch语句】
1.不再需要使用case 关键字
2.case 值后的冒号改为使用箭头(->)
3.default 改为更有意义、更明确的else
4.when 分支可以匹配多个值
5.when 分支后的值不要求是常量,可以是任意表达式
6.when 分支对条件表达式的类型没有任何要求
// ---------------输出 “及格”
var soure='D'
when (soure){
'A' -> {
println("优秀")
println("更上一层楼")
}
'B' -> println("中等")
'C','D' -> println("及格")
else -> println("不及格")
}
// ---------------输出 “优秀” "更上一层楼"
var score = 'B'
var str = "EFGH"
when (soure) {
str[0] - 4, str[1] - 4 -> {
println("优秀")
println("更上一层楼")
}
str[2] - 4, str[3] - 4 -> println("中")
else -> {
println("不及格")
println("别说了,努力吧,骚年")
}
}
// ---------------输出 “优秀” "更上一层楼"
var date = Date()
when (date) {
Date() -> {
println("优秀")
println("更上一层楼")
}
else ->{
println("不及格")
println("别说了,努力吧,骚年")
}
}
// ---------------输出 年龄39 中年
val age = Random().nextInt(100)
println("年龄${age}")
// 使用when 表达式对str2 的赋值
var str2 = when (age) {
in 10..25 -> "青年"
in 26..50 -> "中年"
in 51..80 -> "老年"
else -> "其他"
}
println(str2)
- while、do while循环 【我们不做过多分析,和Java几乎无异】
- for-in 循环可用于遍历任何可迭代对象,所谓可迭代对象就是该对象包含一个iterator()的方法,且该方法的返回值对象具有next()、hasNext()方法,这三个方法都使用operator修饰。
-
使用break 结束循环 【break默认结束其所在的循环,通常紧跟break之后的@的标签符,必须在break所在循环的外层循环之前定义才有意义。】
注意:外层标识符@符在后“auter@”,跳出outer标签所标识的循环@符在前“@auter”
/**
*i 的值是:0
i 的值是:1
i 的值是:2
*/
for (i in 0..10) {
println("i 的值是:${i}")
if (i == 2) {
// 执行该语句时将结束循环
break
}
}
/**
*i 的值是:0
i 的值是:1
*/
// 外层循环 outer作为标签符
auter@ for (i in 0 until 5){
//内层循环
for (i in 0..10) {
println("i 的值是:${i}")
if (i == 1) {
// 跳出outer标签所标识的循环
break@auter
}
}
}
/**
* ---i 的值是:0
---return 后的输出语句
---i 的值是:1
---return 后的输出语句
---i 的值是:2
*/
for (i in 0 until 10) {
println("---i 的值是:${i}")
if (i == 2) {
// 执行该语句时将结束循环
return
}
println("---return 后的输出语句")
}