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

