• Kotlin------流程控制语句


    流程控制语句是编程语言中的核心之一。可分为:

    分支语句(ifwhen)

    循环语句(forwhile )和

    跳转语句 (returnbreakcontinuethrow)等。

     if表达式

    f-else语句是控制程序流程的最基本的形式,其中else是可选的。

    在 Kotlin 中,if 是一个表达式,即它会返回一个值(跟Scala一样)。

    代码示例:

    /**
     * Created by jack on 2017/6/9.
     */
    
    
    fun main(args: Array<String>) {
        println(max(1, 2))
    }
    
    fun max(a: Int, b: Int): Int {
    
    // 作为表达式
        val max = if (a > b) a else b
        return max //  return if (a > b) a else b
    }
    
    fun max1(a: Int, b: Int): Int {
        // 传统用法
        var max1 = a
        if (a < b) max1 = b
        return max1
    
    }
    
    fun max2(a: Int, b: Int): Int {
    
    // With else
        var max2: Int
        if (a > b) {
            max2 = a
        } else {
            max2 = b
        }
        return max2
    }

    另外,if 的分支可以是代码块,最后的表达式作为该块的值:

    fun max3(a: Int, b: Int): Int {
        val max = if (a > b) {
            print("Max is a")
            a
        } else {
            print("Max is b")
            b
        }
        return max
    }

    if作为代码块时,最后一行为其返回值。

    另外,在Kotlin中没有类似true? 1: 0这样的三元表达式。对应的写法是使用if else语句:

    if(true) 1 else 0

    when表达式

    Kotlin中的When和If一样,既可以作为语句,也可以作为表达式,在作为语句时,它相当于Java中的switch。下面是对传入的参数input做一个判断

    fun useWhen(input: Int) {
        var result = when (input) {
            //判断input是否为1
            1 -> println("input == 1")
            //判断input是否为2
            2 -> {
                println("input == 2")
            }
            //input是否在10到20的范围内
            in 10..20 -> println("input number in the range")
            //input是否不在20到30的范围内
            !in 20..30 -> println("input number outside the range")
            else -> { //When作为表达式使用时,最后一定要以else
                println("input: $input")
            }
        }
        println("result: $result")
    }

    从上面的代码看,你会发现它比Java的switch灵活多了。这里只是使用When语句,如果要使用When表达式,则应该If表达式一样,最终一定要以else结尾。

    for循环

    for循环能够对任何提供迭代器(iterator)的对象进行遍历,语法格式如下:

    for (item in collection){
        //代码块
        ...
    }

    和Java有区别,但是也非常简单,Kotlin中的for更类似Java中的增强for循环。

    fun useFor() {
        val students: Array<String> = arrayOf("小主", "小超", "小七")
        for (student in students) {//输出学生名字
            println("student: $student")
        }
        for ((index, student) in students.withIndex()) {//输出学生的下标和名字
            println("the element at $index is $student")
        }
    }

    While循环

    Kotlin中的white(){}和do{}while()和Java差不多,这里不多做赘述。

    fun userWhile() {
        var counter = 10
        while (counter > 0) {
            counter--
            println("counter: $counter")
        }
        do {
            counter++
            println("counter: $counter")
        } while (counter < 10)
    }

    返回和跳转

    Kotlin和Java一样有下面三种跳转表达式

    • continue:跳过这一次循环
    • break:终止包裹它的循环
    • return:从包裹它的函数或者匿名函数中返回

    以上三种跳转都支持跳转到指定的标签处。标签的使用方式也简单,使用@在对应的循环或者匿名函数做标记即可,就像下方的示例代码一样

    
    
    /**
    * 跳除循环和退出
    */
    fun showType3(){
    loop@ for (i in 1..11){
    if (i==2){
    continue@loop
    }
    if (i== 5){
    break@loop
    }
    println(i)
    }
    }
     
     
  • 相关阅读:
    python之map,filter
    python函数的闭包
    Hibernate查询对象的方法浅析
    底部浮动
    DataGrid-自定义排序
    DataGrid-1
    Alert
    2014-01-04 SQL练习
    proguard-gui 混淆代码简要笔记
    vim利用coc补全的配置过程
  • 原文地址:https://www.cnblogs.com/zhangqie/p/7455769.html
Copyright © 2020-2023  润新知