Kotlin編程條件控制示例詳解
本文總覽
本篇來看看 Kotlin的條件控制,這一節(jié)知識點(diǎn) 建議與Java中的條件結(jié)構(gòu)類比,會很好理解并記住。

1. When 表達(dá)式
在 Kotlin 用 when 來定義多個分支的條件表達(dá)式。Kotlin中這個語法與 java 中的 switch 語句非常類似。代碼塊的執(zhí)行就是將參數(shù)與所有的分?條件順序?較,直到滿?某個分?條件:(示例 )
when (x) {
1 -> print("x == 1")
2 -> print("x == 2")
else -> {
print("x is neither 1 nor 2")
}
}
以上示例中,如果都不滿足確切值的分支,將會執(zhí)行 else 分支。
when 如果作為?個表達(dá)式使?, 常規(guī)情況是必須有 else 分?的。 但也有以下特例:
// 一個枚舉對象
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 語句還可以用于檢測?個值在( in )或者不在( !in )?個區(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 是?個表達(dá)式:會返回?個值。這樣其實(shí)就不需要三元運(yùn)算法:( 條件 ? 然后 : 否則 ),if 就可以擔(dān)任同樣的角色
val c = if (condition) a else b
使用 in 運(yùn)算符來檢測某個數(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á)式常見使用方式,對以后的項(xiàng)目中邏輯處理有很大幫助
以上就是Kotlin編程條件控制示例詳解的詳細(xì)內(nèi)容,更多關(guān)于Kotlin 條件控制的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
android閃關(guān)燈的開啟和關(guān)閉方法代碼實(shí)例
這篇文章主要介紹了android閃關(guān)燈的開啟和關(guān)閉方法代碼實(shí)例,本文直接給出代碼和配置實(shí)例,需要的朋友可以參考下2015-05-05
Android 3D旋轉(zhuǎn)動畫效果實(shí)現(xiàn)分解
如何實(shí)現(xiàn)View的3D旋轉(zhuǎn)效果,實(shí)現(xiàn)的主要原理就是圍繞Y軸旋轉(zhuǎn),同時在Z軸方面上有一個深入的縮放,具體實(shí)現(xiàn)代碼如下,感興趣的朋友可以參考下哈2013-06-06
Android插件化-RePlugin項(xiàng)目集成與使用詳解
這篇文章主要介紹了Android插件化-RePlugin項(xiàng)目集成與使用詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-11-11
android底部彈出iOS7風(fēng)格對話選項(xiàng)框(QQ對話框)--第三方開源之IOS_Dialog_Library
這篇文章主要介紹了android底部彈出iOS7風(fēng)格對話選項(xiàng)框(QQ對話框)--第三方開源--IOS_Dialog_Library的相關(guān)資料,需要的朋友可以參考下2015-11-11
Android系統(tǒng)進(jìn)程間通信(IPC)機(jī)制Binder中的Client獲得Server遠(yuǎn)程接口過程源代碼分析
本文主要介紹Android 通信Binder中的Client獲得Server遠(yuǎn)程接口,這里對Android Binder 中Client中Server 源碼做了詳細(xì)分析介紹,有研究Android源碼的小伙伴可以參考下2016-08-08
Android中實(shí)現(xiàn)GPS定位的簡單例子
這篇文章主要介紹了Android中實(shí)現(xiàn)GPS定位的簡單例子,例子邏輯清晰,但相對簡單了些,需要的朋友可以參考下2014-07-07

