Kotlin学习 —— 3.逻辑判断
一、If else
与java不同点:
1.替代java三元表达式
fun test() {
var param1: Int = 10
var result = if (param1 > 5) "大于5" else "小于5"
LogUtil.e(result)
}
2.可赋值给变量
fun test(){
val max = if (param1 > param2) {
param1 * 2
} else {
param2 * 2
}
}
3.使用区间
fun test() {
val param = 5
val max = if(param in 1..6){
param
}else{
0
}
}
二、When
顺序执行,类似与java中的switch,但是没有break(Java中不加break会运行下一个逻辑)即有且只有执行一个条件内容
fun test(param : Any) {
val fruit = setOf("apple", "banana", "kiwi")
when(param){
1,2->{
LogUtil.e("param = $param")
}
"3"->{
LogUtil.e("字符串3")
}
is Number->{
LogUtil.e("Number 数字")
}
is UserBean ->{
LogUtil.e("UserBean对象")
}
false->{
LogUtil.e("Boolean值")
}
in 1..5->{
LogUtil.e("在区间1~5")
}
in fruit->{
LogUtil.e("是水果")
}
else->{
LogUtil.e("其它情况")
}
}
}
三、For循环
fun testFor() {
var studentsArray = mutableListOf<Student>()
var studentsList = mutableListOf<Student>()
var studentMap = mutableMapOf<Long, Student>()
var studentSet = mutableSetOf<Student>()
// 遍历数组
for (student: Student in studentsArray) {// :Student 可省去
//...
}
// 遍历List
for (student in studentsList) {
//...
}
// 遍历List,带索引值
for ((index,student) in studentsList.withIndex()){
//...
}
// 遍历Map
for ((key, student) in studentMap) {
//...
}
// 遍历Set
for (student in studentSet) {
//...
}
}
四、while 和 do…while 循环
与java用法一致
fun testWhile() {
var param: Int = 10
var param1: Int = 0
while (param > 0) {
LogUtil.e("param = $param")
param--
}
do {
LogUtil.e("param = $param")
param++
} while (param1 < 10)
}