1.语句结构
(1)选择结构
![](https://i-blog.csdnimg.cn/blog_migrate/4a18ca447505ad150033b2729a2e6e71.png)
(2)分支结构
when(
表达式
/
语句
){
目标值
1 ->
执行语句
1
目标值
2 ->
执行语句
2
……
目标值
n ->
执行语句
n
else ->{
执行语句
}
}
【案例】
MainActivity.k
![](https://i-blog.csdnimg.cn/blog_migrate/ad800ae779f8256a9823975025c15476.png)
效果:
【案例】when的简化形式
(3)循环语句
while{ }
do…while( )
for( )
【案例】统计10个学生成绩
使用forEach循环语句
【案例】
使用forEachIndexed语句
【案例】
对10个学生成绩求和,且统计出哪些同学成绩大于等于90分。给出这些学生的序号。
效果:
2.区间
(1)正向区间
起点数.rangeTo(终点数)
【案例】
(2)逆向区间
终点数.downTo(起点数)
【案例】
(3)区间+步长step
起点数..终点数
【案例】
3.类型转换
(1)类型判断
(2)类型转换
自动转换
强制转换
as操作符实现强制转换
as?表示如果转换失败,则返回null
4.空值处理
(1)可空类型变量->?
var name:String?
(2)安全调用符->?.
某某变量?.xxx
当变量为null时,xxx不执行,当前表达式返回null
(3)空值默认->?:
某某变量?:默认值
(4)非空断言->!!
断言,不满足预期会出现异常
某某变量!!.xxx
当变量为null时,会抛出异常