Kotlin編程循環(huán)控制示例詳解
本文總覽
本篇來(lái)學(xué)習(xí)Kotlin循環(huán)結(jié)構(gòu)的知識(shí)
1. While循環(huán)
while循環(huán)用于重復(fù)迭代代碼塊,只要給定條件為 true就會(huì)執(zhí)行一次循環(huán)代碼塊。若條件為 false,則直接跳過(guò)循環(huán)代碼塊執(zhí)行后面代碼。
while (x > 0) { x-- } // 當(dāng)條件 x>0 成立,x 就會(huì)減一
do-while循環(huán) 與 while循環(huán)相類(lèi)似,也可用于重復(fù)執(zhí)行迭代代碼塊。但有差別的點(diǎn)是:它會(huì)先執(zhí)行一次循環(huán)代碼塊,才檢測(cè)條件是否滿足,換句話說(shuō):它會(huì)至少執(zhí)行一次 循環(huán)代碼塊。
do { val y = retrieveData() } while (y != null)
// 不管while 條件是否滿足,都會(huì)先執(zhí)行一次 y = retrieveData()
有時(shí)候會(huì)看到一些無(wú)限循環(huán)的示例,只要將條件語(yǔ)句設(shè)定為 true,就會(huì)一直循環(huán)執(zhí)行 迭代代碼塊:
do {
// 循環(huán)代碼塊
}
while (true)
2. For循環(huán)
for循環(huán)用于迭代或循環(huán) 數(shù)組,范圍,集合等的元素,可以對(duì)任何提供迭代器(iterator)的對(duì)象進(jìn)?遍歷。它的語(yǔ)法格式:
for (item in collection) {// 邏輯處理}
?個(gè)成員函數(shù)或者擴(kuò)展函數(shù) iterator() 返回 Iterator<>
- 有?個(gè)成員函數(shù)或者擴(kuò)展函數(shù) next()
- 有?個(gè)成員函數(shù)或者擴(kuò)展函數(shù) hasNext() 返回 Boolean
可以用在數(shù)字區(qū)間上迭代,使用區(qū)間表達(dá)式
for (i in 1..3) { println(i) } // 逐個(gè)打印 區(qū)間[1,3]中的數(shù)字
- 遍歷數(shù)組,同時(shí)打印出元素下標(biāo)和元素值
for ((index, value) in array.withIndex()) { // 使用 庫(kù)函數(shù)withIndex()
println("the element at $index is $value") // 逐個(gè)打印元素的下標(biāo)和數(shù)值
}
forEach語(yǔ)句:使用這個(gè)語(yǔ)句遍歷數(shù)組或集合,比for語(yǔ)句更加簡(jiǎn)便,語(yǔ)法形式如下:
調(diào)用者.forEach() {
println("it=${it}") // 逐個(gè)打印元素
}
日常開(kāi)發(fā)中,結(jié)合實(shí)際業(yè)務(wù)場(chǎng)景來(lái)選取使用 for 還是 for-each。
3. break和continue
在 Kotlin 中有三種結(jié)構(gòu)化跳轉(zhuǎn)表達(dá)式:
- return 直接返回方法/函數(shù)的值,結(jié)束;
- break 跳出本次循環(huán),繼續(xù)執(zhí)行后面業(yè)務(wù)代碼
- continue 跳出本次循環(huán),直接進(jìn)入下一次循環(huán)
3.1 break語(yǔ)句
break最常用在 java 中,常與與 switch組成 switch-break 語(yǔ)句。但在 Kotlin 中沒(méi)有switch這個(gè)語(yǔ)法,break語(yǔ)句通常與 if表達(dá)式 一起用:
for(n in 1..10){
if (n==5) {
break // 在 n = 5時(shí)跳出循環(huán)
}
}
與 if語(yǔ)句組合,一旦滿足給定的條件時(shí),就會(huì)終止本次循環(huán)。
3.2 continue語(yǔ)句
continue 用于跳過(guò)本次迭代并將控制流跳轉(zhuǎn)到下一次迭代,通常與 if表達(dá)式 一起使用,以跳過(guò)指定條件的當(dāng)前循環(huán)。
for (n in 1..5){
...
if(n==2||n==4) {
continue // 只要滿足上述條件,就會(huì)執(zhí)行該語(yǔ)句跳出本次循環(huán)
}
...
}
其實(shí) continue 在Java或者Kotlin用法是一樣的,都很好理解和記住。
總結(jié)
主要學(xué)習(xí)了循環(huán)結(jié)構(gòu)的幾個(gè)語(yǔ)法知識(shí)點(diǎn), 之前學(xué)過(guò) java或c/c++的話,這個(gè)知識(shí)點(diǎn)其實(shí)一點(diǎn)都不難,if while的用法完全一樣,只是寫(xiě)法有一點(diǎn)點(diǎn)調(diào)整。還結(jié)合示例代碼有助于加深理解,學(xué)知識(shí)就是多寫(xiě)多練!
以上就是Kotlin編程循環(huán)控制示例詳解的詳細(xì)內(nèi)容,更多關(guān)于Kotlin循環(huán)控制的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Android?中的?Timer?和?TimerTask詳解
Timer?是?Java?中用于創(chuàng)建定時(shí)任務(wù)的類(lèi),它位于?java.util?包中,可以使用Timer來(lái)安排一次性或定期執(zhí)行的任務(wù),這篇文章主要介紹了Android?的?Timer?和?TimerTask,需要的朋友可以參考下2024-05-05
Android基于反射技術(shù)實(shí)現(xiàn)的加減乘除運(yùn)算示例
這篇文章主要介紹了Android基于反射技術(shù)實(shí)現(xiàn)的加減乘除運(yùn)算,較為詳細(xì)的描述了反射技術(shù)的原理,并結(jié)合完整實(shí)例形式分析了Android基于反射技術(shù)實(shí)現(xiàn)加減乘除四則運(yùn)算的相關(guān)操作步驟與實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-10-10
Android實(shí)現(xiàn)文件存儲(chǔ)并讀取的示例代碼
本篇文章主要介紹了Android實(shí)現(xiàn)文件存儲(chǔ)的示例代碼,文件內(nèi)容可以分別存儲(chǔ)在手機(jī)內(nèi)存和外存中,并且都可以讀去取出來(lái),有興趣的可以了解一下。2017-01-01
Android開(kāi)發(fā)獲取系統(tǒng)中已安裝程序信息的方法
這篇文章主要介紹了Android開(kāi)發(fā)獲取系統(tǒng)中已安裝程序信息的方法,可實(shí)現(xiàn)Android針對(duì)系統(tǒng)中已安裝程序名稱(chēng)、路徑、大小、圖標(biāo)、是否為系統(tǒng)app等信息的獲取功能,需要的朋友可以參考下2017-12-12
Android?ANR分析trace文件的產(chǎn)生流程詳情
這篇文章主要介紹了Android?ANR分析trace文件的產(chǎn)生流程詳情,文章圍繞主題展開(kāi)相詳細(xì)的內(nèi)容介紹,需要的朋友可以參考一下2022-07-07
flutter項(xiàng)目引入iconfont阿里巴巴圖標(biāo)
這篇文章主要為大家介紹了flutter項(xiàng)目引入iconfont阿里巴巴圖標(biāo)的過(guò)程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05
Android如何實(shí)現(xiàn)底部菜單固定到底部
這篇文章主要介紹了Android如何實(shí)現(xiàn)底部菜單固定到底部,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09
Android入門(mén)之在Activity之間穿梭的Intent
Intent可以用來(lái)啟動(dòng)Activity(startActivity(Intent))、Serveice(startService(Intent))等組件,可以用來(lái)綁定Activity和Service以建立它們之間的通信(bindServiceConnaction(Intent,ServiceConnection,int)),可以作為Broadcast Intent發(fā)送給廣播接收器2021-10-10
解決android6.0以上不能讀取外部存儲(chǔ)權(quán)限的問(wèn)題
今天小編就為大家分享一篇解決android6.0以上不能讀取外部存儲(chǔ)權(quán)限的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-08-08
Android常用控件ImageSwitcher使用方法詳解
這篇文章主要為大家詳細(xì)介紹了Android常用控件ImageSwitcher的使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08

