網站首頁 編程語言 正文
本文總覽
本篇來學習Kotlin循環結構的知識
1. While循環
while
循環用于重復迭代代碼塊,只要給定條件為 true就會執行一次循環代碼塊。若條件為 false,則直接跳過循環代碼塊執行后面代碼。
while (x > 0) { x-- } // 當條件 x>0 成立,x 就會減一
do-while
循環 與 while
循環相類似,也可用于重復執行迭代代碼塊。但有差別的點是:它會先執行一次循環代碼塊,才檢測條件是否滿足,換句話說:它會至少執行一次 循環代碼塊。
do { val y = retrieveData() } while (y != null) // 不管while 條件是否滿足,都會先執行一次 y = retrieveData()
有時候會看到一些無限循環的示例,只要將條件語句設定為 true,就會一直循環執行 迭代代碼塊:
do { // 循環代碼塊 } while (true)
2. For循環
for
循環用于迭代或循環 數組,范圍,集合等的元素,可以對任何提供迭代器(iterator)的對象進?遍歷。它的語法格式:
for (item in collection) {// 邏輯處理}
?個成員函數或者擴展函數 iterator() 返回 Iterator<>
- 有?個成員函數或者擴展函數 next()
- 有?個成員函數或者擴展函數 hasNext() 返回 Boolean
可以用在數字區間上迭代,使用區間表達式
for (i in 1..3) { println(i) } // 逐個打印 區間[1,3]中的數字
- 遍歷數組,同時打印出元素下標和元素值
for ((index, value) in array.withIndex()) { // 使用 庫函數withIndex() println("the element at $index is $value") // 逐個打印元素的下標和數值 }
forEach
語句:使用這個語句遍歷數組或集合,比for
語句更加簡便,語法形式如下:
調用者.forEach() { println("it=${it}") // 逐個打印元素 }
日常開發中,結合實際業務場景來選取使用 for
還是 for-each
。
3. break和continue
在 Kotlin 中有三種結構化跳轉表達式:
- return 直接返回方法/函數的值,結束;
- break 跳出本次循環,繼續執行后面業務代碼
- continue 跳出本次循環,直接進入下一次循環
3.1 break語句
break
最常用在 java 中,常與與 switch
組成 switch-break 語句。但在 Kotlin 中沒有switch這個語法,break
語句通常與 if
表達式 一起用:
for(n in 1..10){ if (n==5) { break // 在 n = 5時跳出循環 } }
與 if語句組合,一旦滿足給定的條件時,就會終止本次循環。
3.2 continue語句
continue
用于跳過本次迭代并將控制流跳轉到下一次迭代,通常與 if
表達式 一起使用,以跳過指定條件的當前循環。
for (n in 1..5){ ... if(n==2||n==4) { continue // 只要滿足上述條件,就會執行該語句跳出本次循環 } ... }
其實 continue 在Java或者Kotlin用法是一樣的,都很好理解和記住。
總結
主要學習了循環結構的幾個語法知識點, 之前學過 java或c/c++的話,這個知識點其實一點都不難,if while的用法完全一樣,只是寫法有一點點調整。還結合示例代碼有助于加深理解,學知識就是多寫多練!
原文鏈接:https://juejin.cn/post/7133420899453108232
相關推薦
- 2021-11-21 CentOS7環境中DHCP配置教程_Linux
- 2022-12-22 go?time.Sleep睡眠指定時間實例詳解(小時級到納秒級)_Golang
- 2022-04-04 react Ant Design使用a標簽href屬性警告解決方法
- 2022-04-21 Mybatis - tk.mybatis deleteByPrimaryKey無法正確識別主鍵
- 2022-08-20 oracle?delete誤刪除表數據后如何恢復_oracle
- 2023-03-26 Redis?分片集群的實現_Redis
- 2022-08-04 解析Mybatis對sql表的一對多查詢問題_MsSql
- 2022-09-16 Numpy中的shape、reshape函數的區別_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支