Kotlin 條件控制

IF 表達(dá)式

  • 一個(gè) if 語(yǔ)句包含一個(gè)布爾表達(dá)式和一條或多條語(yǔ)句冰更。
      val max = if (a > b) {
            print("Choose a")
          a
      } else {
          print("Choose b")
          b
      }
      // 作為表達(dá)式
      val max = if (a > b) a else b
  • IF 表達(dá)式的結(jié)果賦值給一個(gè)變量扶叉。
      val c = if (condition) a else b

區(qū)間

  • 使用 in 運(yùn)算符來(lái)檢測(cè)某個(gè)數(shù)字是否在指定區(qū)間內(nèi)湿酸,區(qū)間格式為 x..y
        val x = 5
        val y = 9
        if (x in 1..8) {
             println("x 在區(qū)間內(nèi)")
        }

When 表達(dá)式

  • when 將它的參數(shù)和所有的分支條件順序比較伍派,直到某個(gè)分支滿(mǎn)足條件。
  • when 既可以被當(dāng)做表達(dá)式使用也可以被當(dāng)做語(yǔ)句使用屈张。如果它被當(dāng)做表達(dá)式擒权,符合條件的分支的值就是整個(gè)表達(dá)式的值,如果當(dāng)做語(yǔ)句使用阁谆, 則忽略個(gè)別分支的值碳抄。
  • when 類(lèi)似其他語(yǔ)言的 switch 操作符。其最簡(jiǎn)單的形式如下:
      when (x) {
                1 -> print("x == 1")
                2 -> print("x == 2")
                else -> { // 注意這個(gè)塊
                              print("x 不是 1 场绿,也不是 2")
                           }
               }
  • 在 when 中剖效,else 同 switch 的 default。如果其他分支都不滿(mǎn)足條件將會(huì)求值 else 分支焰盗。
    如果很多分支需要用相同的方式處理璧尸,則可以把多個(gè)分支條件放在一起,用逗號(hào)分隔:
      when (x) {
                0, 1 -> print("x == 0 or x == 1")//處理的方式相同熬拒,所以用逗號(hào)分隔分支條件
                else -> print("default")
               }
  • 我們也可以檢測(cè)一個(gè)值在(in)或者不在(!in)一個(gè)區(qū)間或者集合中:
       when (x) {
          in 1..10 -> print("x is in the range")
          in validNumbers -> print("x is valid")
          !in 10..20 -> print("x is outside the range")
          else -> print("none of the above")
}
  • 另一種可能性是檢測(cè)一個(gè)值是(is)或者不是(!is)一個(gè)特定類(lèi)型的值爷光。注意: 由于智能轉(zhuǎn)換,你可以訪(fǎng)問(wèn)該類(lèi)型的方法和屬性而無(wú)需 任何額外的檢測(cè)澎粟。
        fun hasPrefix(x: Any) = when(x) {
        is String -> x.startsWith("prefix")
        else -> false
}
  • when 中使用 in 運(yùn)算符來(lái)判斷集合內(nèi)是否包含某實(shí)例:
        fun main(args: Array<String>) {
          val items = setOf("apple", "banana", "kiwi")
          when {
              "orange" in items -> println("juicy")
              "apple" in items -> println("apple is fine too")
                  }
        }    
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蛀序,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子活烙,更是在濱河造成了極大的恐慌徐裸,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,576評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件啸盏,死亡現(xiàn)場(chǎng)離奇詭異倦逐,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)宫补,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,515評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)檬姥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人粉怕,你說(shuō)我怎么就攤上這事健民。” “怎么了贫贝?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,017評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵秉犹,是天一觀的道長(zhǎng)蛉谜。 經(jīng)常有香客問(wèn)我,道長(zhǎng)崇堵,這世上最難降的妖魔是什么型诚? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,626評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮鸳劳,結(jié)果婚禮上狰贯,老公的妹妹穿的比我還像新娘。我一直安慰自己赏廓,他們只是感情好涵紊,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,625評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著幔摸,像睡著了一般摸柄。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上既忆,一...
    開(kāi)封第一講書(shū)人閱讀 52,255評(píng)論 1 308
  • 那天驱负,我揣著相機(jī)與錄音,去河邊找鬼患雇。 笑死电媳,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的庆亡。 我是一名探鬼主播,決...
    沈念sama閱讀 40,825評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼捞稿,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼又谋!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起娱局,我...
    開(kāi)封第一講書(shū)人閱讀 39,729評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤彰亥,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后衰齐,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體任斋,經(jīng)...
    沈念sama閱讀 46,271評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,363評(píng)論 3 340
  • 正文 我和宋清朗相戀三年废酷,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了澈蟆。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片趴俘。...
    茶點(diǎn)故事閱讀 40,498評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出嗽元,到底是詐尸還是另有隱情剂癌,我是刑警寧澤佩谷,帶...
    沈念sama閱讀 36,183評(píng)論 5 350
  • 正文 年R本政府宣布裁奇,位于F島的核電站溃肪,受9級(jí)特大地震影響惫撰,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜夯膀,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,867評(píng)論 3 333
  • 文/蒙蒙 一涂佃、第九天 我趴在偏房一處隱蔽的房頂上張望辜荠。 院中可真熱鬧伯病,春花似錦惭蟋、人聲如沸告组。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,338評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)木缝。三九已至,卻和暖如春围辙,著一層夾襖步出監(jiān)牢的瞬間我碟,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,458評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工姚建, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留矫俺,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,906評(píng)論 3 376
  • 正文 我出身青樓掸冤,卻偏偏與公主長(zhǎng)得像厘托,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子贩虾,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,507評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • IF 表達(dá)式 一個(gè) if 語(yǔ)句包含一個(gè)布爾表達(dá)式和一條或多條語(yǔ)句。它與在Java中的語(yǔ)法其實(shí)并沒(méi)有什么區(qū)別沥阱。 下面...
    郎官人閱讀 270評(píng)論 0 0
  • 本章將會(huì)介紹 控制流For-In 循環(huán)While 循環(huán)If 條件語(yǔ)句Switch 語(yǔ)句控制轉(zhuǎn)移語(yǔ)句 continu...
    寒橋閱讀 727評(píng)論 0 0
  • 有這么一個(gè)黑程序員的段子 老婆給當(dāng)程序員的老公打電話(huà):“下班順路買(mǎi)一斤包子帶回來(lái)考杉,如果看到賣(mài)西瓜的策精,買(mǎi)一個(gè)〕缣模”當(dāng)晚...
    黑馬程序員小華華閱讀 595評(píng)論 2 5
  • 害怕過(guò)節(jié) 更害怕過(guò)周末 因?yàn)楣?jié)就那么幾個(gè) 而周末卻幾天一個(gè) 害怕過(guò)周末 是怕過(guò)一個(gè)人的周末 身上的每寸皮膚仿佛被螞...
    coralbeauty閱讀 124評(píng)論 0 0
  • 剛開(kāi)始學(xué)習(xí)android不久咽袜,像iOS中的Tabbar那么簡(jiǎn)單的東西到android里卻并沒(méi)有特別方便現(xiàn)成的實(shí)現(xiàn)。...
    憂(yōu)郁的小碼仔閱讀 378評(píng)論 0 0