每天學(xué)一點(diǎn) Kotlin -- 控制流:循環(huán)

----《第一季Kotlin崛起:次世代Android開發(fā) 》學(xué)習(xí)筆記

總目錄:每天學(xué)一點(diǎn) Kotlin ---- 目錄
上一篇:每天學(xué)一點(diǎn) Kotlin -- 控制流:多元判斷
下一篇:每天學(xué)一點(diǎn) Kotlin -- 字符串和字符

1. 介紹

1.1 Kotlin 支持其他語(yǔ)言中常見的兩種循環(huán):while 和 for 循環(huán)先嬉。while 循環(huán)的語(yǔ)法和C院究、Java中一樣的宪彩。for 循環(huán)的語(yǔ)法和 Java 中的 forEach 的語(yǔ)法很像。

2. for 循環(huán)

2.1 for 循環(huán)的語(yǔ)法如下:

for(單項(xiàng) in 集合){
  // 具體的操作... 
}

其中,“單項(xiàng)”是一個(gè)常量,不需要再添加 val 關(guān)鍵字了。而且它只在 for 循環(huán)的大括號(hào)內(nèi)部使用痰哨。

2.2 Kotlin 中的 for 循環(huán)用于迭代任何一個(gè)預(yù)定義或者擴(kuò)展了一個(gè)名為 iterator 的函數(shù)。所有集合類型都提供了這個(gè)函數(shù)匾嘱。舉個(gè)栗子:

fun main(args: Array<String>) {

    testFor_01()
}

fun testFor_01() {
    val list = listOf(2, 3, 5, 6, 8)
    for (k in list) {
        print("  " + k)
    }

    println()
    val set = setOf(1, 2, 3, 4)
    for (k in set) {
        print("  ${k}")
    }
}

打印結(jié)果:

2  3  5  6  8
1  2  3  4

2.3 一個(gè)對(duì)象想要被 for 循環(huán)使用斤斧,需要實(shí)現(xiàn)一個(gè) iterator 的函數(shù)。這個(gè)函數(shù)必須返回一個(gè)提供了實(shí)現(xiàn)以下兩個(gè)操作符函數(shù)的對(duì)象實(shí)例:

operator fun hasNext() : Boolean 
operator fun next() : T

編譯器不會(huì)糾結(jié)于任何特定的接口奄毡,只要這個(gè)對(duì)象返回這兩個(gè)函數(shù)就可以折欠。比如,系統(tǒng)提供的字符串類 String吼过,Kotlin 已經(jīng)提供了一個(gè) iterator 擴(kuò)展函數(shù)锐秦,所以 String 能用 for 循環(huán)進(jìn)行迭代。

fun testFor_02() {
    val str = "努力學(xué)習(xí)Kotlin"
    for (item in str) {
        print(item + " ")
    }

    println()
    val arr = arrayOf(1, 2, 3, 4, 5, 6)
    for (item in arr) {
        print("  " + item)
    }
}

打印結(jié)果:

努 力 學(xué) 習(xí) K o t l i n 
  1  2  3  4  5  6

2.4 對(duì)于 Java 或 C 中的 for 的指定次數(shù)的循環(huán)盗忱,Java 中寫法為:

for(int i = 0; i < 100; i++){
System.out.println("" + i)
}

在Kotlin中酱床,相應(yīng)的寫法為:

for(i in 1..100){
   println("" + i)
}

3. while 循環(huán)

while 循環(huán)的語(yǔ)法和C、Java中一樣的趟佃,舉例如下:

fun main() {
    var i = 0
    while(i < 4){
        i++
        println("這是一個(gè)有限循環(huán)...")
    }

//    while(true){
//        println("這是一個(gè)無(wú)限循環(huán)...")
//    }
}
相關(guān)代碼:https://gitee.com/fzq.com/test-demo
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末扇谣,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子闲昭,更是在濱河造成了極大的恐慌罐寨,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,029評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件序矩,死亡現(xiàn)場(chǎng)離奇詭異鸯绿,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)簸淀,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,395評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門瓶蝴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人租幕,你說(shuō)我怎么就攤上這事舷手。” “怎么了劲绪?”我有些...
    開封第一講書人閱讀 157,570評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵男窟,是天一觀的道長(zhǎng)盆赤。 經(jīng)常有香客問(wèn)我,道長(zhǎng)蝎宇,這世上最難降的妖魔是什么弟劲? 我笑而不...
    開封第一講書人閱讀 56,535評(píng)論 1 284
  • 正文 為了忘掉前任祷安,我火速辦了婚禮姥芥,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘汇鞭。我一直安慰自己凉唐,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,650評(píng)論 6 386
  • 文/花漫 我一把揭開白布霍骄。 她就那樣靜靜地躺著台囱,像睡著了一般。 火紅的嫁衣襯著肌膚如雪读整。 梳的紋絲不亂的頭發(fā)上簿训,一...
    開封第一講書人閱讀 49,850評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音米间,去河邊找鬼强品。 笑死,一個(gè)胖子當(dāng)著我的面吹牛屈糊,可吹牛的內(nèi)容都是我干的的榛。 我是一名探鬼主播,決...
    沈念sama閱讀 39,006評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼逻锐,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼夫晌!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起昧诱,我...
    開封第一講書人閱讀 37,747評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤晓淀,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后盏档,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體凶掰,經(jīng)...
    沈念sama閱讀 44,207評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,536評(píng)論 2 327
  • 正文 我和宋清朗相戀三年妆丘,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了锄俄。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,683評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡勺拣,死狀恐怖奶赠,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情药有,我是刑警寧澤毅戈,帶...
    沈念sama閱讀 34,342評(píng)論 4 330
  • 正文 年R本政府宣布苹丸,位于F島的核電站,受9級(jí)特大地震影響苇经,放射性物質(zhì)發(fā)生泄漏赘理。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,964評(píng)論 3 315
  • 文/蒙蒙 一扇单、第九天 我趴在偏房一處隱蔽的房頂上張望商模。 院中可真熱鬧,春花似錦蜘澜、人聲如沸施流。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,772評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)瞪醋。三九已至,卻和暖如春装诡,著一層夾襖步出監(jiān)牢的瞬間银受,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,004評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工鸦采, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留宾巍,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,401評(píng)論 2 360
  • 正文 我出身青樓赖淤,卻偏偏與公主長(zhǎng)得像蜀漆,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子咱旱,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,566評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容