美文网首页Kotlin编程
Kotlin流程控制

Kotlin流程控制

作者: 凌烟醉卧 | 来源:发表于2019-06-22 22:41 被阅读0次

    1)if 分支既可作为语句使用,也可作为表达式(可以赋值给变量)使用。

    if(){

    }else if(){

    }else{

    }

    如果 if、 elseif和else后的代码块只有一行语句,则可以
    省略花括号,

    val a = 5 
    if (a > 4) 
    //如果 a > 4,则执行下面的执行体,只有一行代码作为代码块
        printlr川、大于 ”}
    else 
    //否则,执行下面的执行体,只有一行代码作为代码块
        println (” 不大于 ”}
    

    if表达式代替了三元表达式:

        var age = 18
        var resutl = if(age>18) "age大于18" else if(age==18) "age等于18" else "age小于18"
        println(resutl)//age等于18
    

    2)when表达式:代替了switch表达式;可以作为语句,也可以作为表达式(赋值给变量)返回。

    使用箭头->

    作为语句

        var result = "A"
        when(result){
            "B" -> println("B" )
            "A" -> println("A" )//A
            "C" -> println("C" )
            else -> println("其它" )//这个相当于defalt
        }
    

    作为表达式返回

        var result = "A"
        val str = when(result){//作为表达式返回
            "B" -> println("B" )
            "A" -> println("A" )//A
            "C" -> println("C" )
            else -> println("其它" )//这个相当于defalt
        }
    

    如果 when 分支包含多条语句,则需要使用花括号将这些语句括成一个整体形成代码块。

        var result = "A"
        when(result){
            "B" -> {
                println("B" )
                println("望百尺竿头更进一步")
            }
            "A" -> println("A" )//A
            "C" -> println("C" )
            else -> println("其它" ) //这个相当于defalt
        }
    

    when 分支可以匹配多个值。
    when 分支后的值不要求是常量 可以是任意表达式。
    when 分支对条件表达式的类型没有任何要求。

        when(result){
            "B","C" -> {//可以匹配多个值
                println("B" )
                println("望百尺竿头更进一步")
            }
            "A" -> println("A" )//A
            else -> println("其它" ) //这个相当于defalt
        }
    
        var str = "EFGH"
        print("${str[0]-4}")//str[0]为E,减去4为A
        var score = 'B'
        when(score){
            str[0] - 4, str[1] - 4-> {//可以是任意表达式
                print("优秀")
           }
           else -> print("其它")
        }
    }
    
        class Person{
        }
    
        var person = Person()
        when(person){//对类型没有任何要求
            person-> {
                print("person")//person
           }
           else -> print("其它")
        }
    

    when搭配 in,!in,is,!is使用


    when分支也可以代替表达式:

        var result = "a"
        when{
    //每个分支都是 个布尔表达式,当某个分支的布尔表达式为 true时, 将会执行该分支的代码。
             result.equals("b") -> print("b")
             result.equals("a") -> print("a")
        }
    

    3)while循环,do...while循环,for...in循环

    var result = 1..8
     for(item in result step 3){ //这里指定了步长
         print(item)// 1 4 7 
     }
    

    4)break

    • 终止所在的循环语句
    • 终止外层循环,使用@标签
       var result = 1..8
       outer@ for(item in result){
           for(i in 0..3){
               if(i == 1){
                    print(i)// 1
                    break@outer
               }
           }
       }
    

    5)continue:和break 类似, ontinue 后也可以紧跟一个标签,用于直接跳过标签所标识循环的当次循环的剩下语句 重新开始下 次循环。

    6)return 和Java一样

    相关文章

      网友评论

        本文标题:Kotlin流程控制

        本文链接:https://www.haomeiwen.com/subject/pyrbqctx.html