Kotlin 学习——控制流(if、when、for、while)

时间:2022-10-06 20:07:22
  • if 表达式
fun main(args: Array<String>) {
    val a = 2
    val b = 3
    var x = 0
    // 最简单的使用
    if (a>b) x = a
    println(x)
    // 使用 if-else 语句
    if (a>b){
        x = 8
    }else{
        x = 7
    }
    println(x)
    // 使用三元表达式
    x = if (a>b) 10 else 12
    println(x)
}

    结果:

Kotlin 学习——控制流(if、when、for、while)

    if-else 还可以作为代码块的同时,最后的表达式作为该块的值:

fun main(args: Array<String>) {
    println(answer(2,3,10))
    println(answer(3,2,10))
}
fun answer(a:Int,b:Int,c:Int):Int = if (a>b){
    // 中间的代码块
    print("a<b,x=")
    // 最后的表达式,比如 7 作为这块的值,即 当 a>b 时 x=7
    7
}else{
    print("a>b,x=")
    // 最后的表达式,比如 c+1 作为这块的值,即 当 a<b 时 x=c+1
    c+1
}

Kotlin 学习——控制流(if、when、for、while)

  • when 表达式
fun main(args: Array<String>) {
    answer(1)
    answer(2)
    answer(3)
    answer(4)
    answer(5)
    answer(6)
    answer(7)
    answer(8)
}
fun answer(a:Int){
    when (a){
        // 简单使用
        1 -> println("这是 1")
        2 -> println("这是 2")
        // 可以将几种条件使用 , 分隔
        3,4 -> println("这是 3 或者 4")
        // 使用 in 检查是否属于一个集合
        in 5..7 -> println("属于 5 到 7")
        else -> println("其它数字")
    }
}

    结果:

Kotlin 学习——控制流(if、when、for、while)

    还可以使用  is 进行判断:

fun main(args: Array<String>) {
    answer("abc")
    answer(5)
    answer('t')
}
fun answer(a:Any){
    when (a){
        is String -> println("String 类型")
        is Int -> println("Int 类型")
        else -> println("其它类型")
    }
}

    结果:

Kotlin 学习——控制流(if、when、for、while)

  • for 循环:
fun main(args: Array<String>) {
    /*
        简单使用
     */
    val list = listOf<Int>(1,2,3,4)
    // 使用 in 进行 for 循环
    for (li in list) print(li)
    println()

    /*
       或者在数字区间上
    */
    var array = IntArray(5)
    // 给数组添加元素
    for (i in 0..4) array[i]=i
    // 查询元素
    for (i in array) print(i)
    println()
    // 使用索引查询
    for (i in array.indices) print(array[i])
    println()
    // 使用 size 大小查询
    for (i in 0..(array.size-1)) print(array[i])
    println()
    // 使用 withIndex 库
    for ((index,value) in array.withIndex()) print(value)
}

    结果:

Kotlin 学习——控制流(if、when、for、while)

  • while 循环
fun main(args: Array<String>) {
    val list = listOf<Int>(1,2,3,4,5)
    var i = 0
    // 使用 while
    while (i<list.size){
        print(list[i])
        i++
    }
    println()
    i=0
    // 使用 do-while
    do {
        print(list[i])
        i++
    }while (i<list.size)
}

    结果:

Kotlin 学习——控制流(if、when、for、while)