Kotlin流程控制

1)if 分支既可作為語(yǔ)句使用,也可作為表達(dá)式(可以賦值給變量)使用。

if(){

}else if(){

}else{

}

如果 if、 elseif和else后的代碼塊只有一行語(yǔ)句,則可以
省略花括號(hào),

val a = 5 
if (a > 4) 
//如果 a > 4,則執(zhí)行下面的執(zhí)行體,只有一行代碼作為代碼塊
    printlr川、大于 ”}
else 
//否則,執(zhí)行下面的執(zhí)行體,只有一行代碼作為代碼塊
    println (” 不大于 ”}

if表達(dá)式代替了三元表達(dá)式:

    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表達(dá)式:代替了switch表達(dá)式;可以作為語(yǔ)句,也可以作為表達(dá)式(賦值給變量)返回。

使用箭頭->

作為語(yǔ)句

    var result = "A"
    when(result){
        "B" -> println("B" )
        "A" -> println("A" )//A
        "C" -> println("C" )
        else -> println("其它" )//這個(gè)相當(dāng)于defalt
    }

作為表達(dá)式返回

    var result = "A"
    val str = when(result){//作為表達(dá)式返回
        "B" -> println("B" )
        "A" -> println("A" )//A
        "C" -> println("C" )
        else -> println("其它" )//這個(gè)相當(dāng)于defalt
    }

如果 when 分支包含多條語(yǔ)句,則需要使用花括號(hào)將這些語(yǔ)句括成一個(gè)整體形成代碼塊。

    var result = "A"
    when(result){
        "B" -> {
            println("B" )
            println("望百尺竿頭更進(jìn)一步")
        }
        "A" -> println("A" )//A
        "C" -> println("C" )
        else -> println("其它" ) //這個(gè)相當(dāng)于defalt
    }

when 分支可以匹配多個(gè)值。
when 分支后的值不要求是常量 可以是任意表達(dá)式。
when 分支對(duì)條件表達(dá)式的類(lèi)型沒(méi)有任何要求。

    when(result){
        "B","C" -> {//可以匹配多個(gè)值
            println("B" )
            println("望百尺竿頭更進(jìn)一步")
        }
        "A" -> println("A" )//A
        else -> println("其它" ) //這個(gè)相當(dāng)于defalt
    }
    var str = "EFGH"
    print("${str[0]-4}")//str[0]為E,減去4為A
    var score = 'B'
    when(score){
        str[0] - 4, str[1] - 4-> {//可以是任意表達(dá)式
            print("優(yōu)秀")
       }
       else -> print("其它")
    }
}
    class Person{
    }

    var person = Person()
    when(person){//對(duì)類(lèi)型沒(méi)有任何要求
        person-> {
            print("person")//person
       }
       else -> print("其它")
    }

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


when分支也可以代替表達(dá)式:

    var result = "a"
    when{
//每個(gè)分支都是 個(gè)布爾表達(dá)式,當(dāng)某個(gè)分支的布爾表達(dá)式為 true時(shí), 將會(huì)執(zhí)行該分支的代碼。
         result.equals("b") -> print("b")
         result.equals("a") -> print("a")
    }

3)while循環(huán),do...while循環(huán),for...in循環(huán)

var result = 1..8
 for(item in result step 3){ //這里指定了步長(zhǎng)
     print(item)// 1 4 7 
 }

4)break

  • 終止所在的循環(huán)語(yǔ)句
  • 終止外層循環(huán),使用@標(biāo)簽
   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 類(lèi)似, ontinue 后也可以緊跟一個(gè)標(biāo)簽,用于直接跳過(guò)標(biāo)簽所標(biāo)識(shí)循環(huán)的當(dāng)次循環(huán)的剩下語(yǔ)句 重新開(kāi)始下 次循環(huán)。

6)return 和Java一樣

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 上一篇 簡(jiǎn)單介紹了基本變量和函數(shù)的使用。這一篇我準(zhǔn)備深入介紹下流程控制語(yǔ)句。畢竟流程控制在我們開(kāi)發(fā)中還是占有很重要...
    我小時(shí)候真的可狠了閱讀 847評(píng)論 0 2
  • 流程控制語(yǔ)句是編程語(yǔ)言中的核心之一??煞譃椋?分支語(yǔ)句(if 、 when)循環(huán)語(yǔ)句(for、while )和跳轉(zhuǎn)...
    IT小魔女的故事閱讀 528評(píng)論 0 0
  • if語(yǔ)句 用法和Java基本差不多。但Kotlin中的if語(yǔ)句可以作為表達(dá)式使用。 如你所見(jiàn),Kotlin中的if...
    CoorChice閱讀 1,306評(píng)論 0 3
  • Kotlin語(yǔ)言基礎(chǔ)筆記 Kotlin流程控制語(yǔ)句筆記 Kotlin操作符重載與中綴表示法筆記 Kotlin擴(kuò)展函...
    dengyin2000閱讀 1,624評(píng)論 2 1
  • Lua 5.1 參考手冊(cè) by Roberto Ierusalimschy, Luiz Henrique de F...
    蘇黎九歌閱讀 14,258評(píng)論 0 38

友情鏈接更多精彩內(nèi)容