Kotlin編程條件控制示例詳解
本文總覽
本篇來看看 Kotlin的條件控制,這一節(jié)知識(shí)點(diǎn) 建議與Java中的條件結(jié)構(gòu)類比,會(huì)很好理解并記住。
1. When 表達(dá)式
在 Kotlin 用 when 來定義多個(gè)分支的條件表達(dá)式。Kotlin中這個(gè)語法與 java 中的 switch 語句非常類似。代碼塊的執(zhí)行就是將參數(shù)與所有的分?條件順序?較,直到滿?某個(gè)分?條件:(示例 )
when (x) { 1 -> print("x == 1") 2 -> print("x == 2") else -> { print("x is neither 1 nor 2") } }
以上示例中,如果都不滿足確切值的分支,將會(huì)執(zhí)行 else 分支。
when 如果作為?個(gè)表達(dá)式使?, 常規(guī)情況是必須有 else 分?的。 但也有以下特例:
// 一個(gè)枚舉對(duì)象 enum class Bit { ZERO, ONE } val numericValue = when (getRandomBit()) { Bit.ZERO -> 0 Bit.ONE -> 1 // 'else' ... }
上面示例說明:編譯器能夠檢測出所有的可能情況都已經(jīng)覆蓋,這種情況 是可以沒有 else 分支的。
when 語句的分?條件可以?任意表達(dá)式(?不只是常量)來表示:
when (x) { s.toInt() -> print("s encodes x") else -> print("s does not encode x") }
when 語句還可以用于檢測?個(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") // 不在范圍內(nèi) else -> print("none of the above") }
從以上這些特性可知,when 是可以?來取代 if - else條件表達(dá)式的。
2. If 表達(dá)式
在 Kotlin 中, if 是?個(gè)表達(dá)式:會(huì)返回?個(gè)值。這樣其實(shí)就不需要三元運(yùn)算法:( 條件 ? 然后 : 否則 ),if 就可以擔(dān)任同樣的角色
val c = if (condition) a else b
使用 in 運(yùn)算符來檢測某個(gè)數(shù)字是否在指定區(qū)間內(nèi),區(qū)間格式為 x..y :
fun main() { val x = 5 val y = 9 if (x in 1..8) { println("x 在區(qū)間內(nèi)") } }
若將if
用作表達(dá)式,例如,用于返回其值或?qū)⑵浞峙浣o變量,則else
分支是強(qiáng)制性的。
if
表達(dá)式的分?可以是代碼塊:
val max = if (a > b) { print("Choose a") a } else { print("Choose b") b }
在Kotlin中,常用的 if 表達(dá)式:
if
表達(dá)式if..else
表達(dá)式if..else if..else
表達(dá)式- 嵌套表達(dá)式
總結(jié)
本篇學(xué)習(xí) kotlin 的 when表達(dá)式 和 if表達(dá)式,它與 Java 中 switch語句, if語句有這異曲同工之處。when 表達(dá)式和if 表達(dá)式常見使用方式,對(duì)以后的項(xiàng)目中邏輯處理有很大幫助
以上就是Kotlin編程條件控制示例詳解的詳細(xì)內(nèi)容,更多關(guān)于Kotlin 條件控制的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
android閃關(guān)燈的開啟和關(guān)閉方法代碼實(shí)例
這篇文章主要介紹了android閃關(guān)燈的開啟和關(guān)閉方法代碼實(shí)例,本文直接給出代碼和配置實(shí)例,需要的朋友可以參考下2015-05-05Android 3D旋轉(zhuǎn)動(dòng)畫效果實(shí)現(xiàn)分解
如何實(shí)現(xiàn)View的3D旋轉(zhuǎn)效果,實(shí)現(xiàn)的主要原理就是圍繞Y軸旋轉(zhuǎn),同時(shí)在Z軸方面上有一個(gè)深入的縮放,具體實(shí)現(xiàn)代碼如下,感興趣的朋友可以參考下哈2013-06-06Android插件化-RePlugin項(xiàng)目集成與使用詳解
這篇文章主要介紹了Android插件化-RePlugin項(xiàng)目集成與使用詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-11-11android底部彈出iOS7風(fēng)格對(duì)話選項(xiàng)框(QQ對(duì)話框)--第三方開源之IOS_Dialog_Library
這篇文章主要介紹了android底部彈出iOS7風(fēng)格對(duì)話選項(xiàng)框(QQ對(duì)話框)--第三方開源--IOS_Dialog_Library的相關(guān)資料,需要的朋友可以參考下2015-11-11Android系統(tǒng)進(jìn)程間通信(IPC)機(jī)制Binder中的Client獲得Server遠(yuǎn)程接口過程源代碼分析
本文主要介紹Android 通信Binder中的Client獲得Server遠(yuǎn)程接口,這里對(duì)Android Binder 中Client中Server 源碼做了詳細(xì)分析介紹,有研究Android源碼的小伙伴可以參考下2016-08-08Android中實(shí)現(xiàn)GPS定位的簡單例子
這篇文章主要介紹了Android中實(shí)現(xiàn)GPS定位的簡單例子,例子邏輯清晰,但相對(duì)簡單了些,需要的朋友可以參考下2014-07-07