循環(huán)在編程中用于重復(fù)特定的代碼塊。在本文中,您將學(xué)習(xí)在Kotlin編程中創(chuàng)建 while 和 do ... while 循環(huán)。
循環(huán)在編程中用于重復(fù)特定的代碼塊,直到滿足特定條件(測試表達(dá)式為false)。
循環(huán)使計(jì)算機(jī)成為有趣的機(jī)器。想象一下,您需要在屏幕上打印一個(gè)句子50次。好吧,您可以通過使用print語句50次(不使用循環(huán))來做到這一點(diǎn)。您需要打印一百萬次句子怎么樣?您需要使用循環(huán)。
您將了解兩個(gè)循環(huán)while和do..while這篇文章的實(shí)例幫助中
如果您熟悉Java中的while和do ... while循環(huán),那么您也已經(jīng)熟悉Kotlin中的這些循環(huán)。
while 循環(huán)的語法為:
while (testExpression) { // while循環(huán)體內(nèi)的代碼 }
括號(hào)內(nèi)的測試表達(dá)式是布爾表達(dá)式。
如果測試表達(dá)式的計(jì)算結(jié)果為true,
while 循環(huán)內(nèi)的語句將被執(zhí)行。
然后,再次對(duì)測試表達(dá)式求值。
這個(gè)過程一直進(jìn)行到測試表達(dá)式被評(píng)估為 false 為止。
如果測試表達(dá)式的計(jì)算結(jié)果為false,
while循環(huán)終止。
//程序打印5次 fun main(args: Array<String>) { var i = 1 while (i <= 5) { println("Line $i") ++i } }
運(yùn)行該程序時(shí),輸出為:
Line 1 Line 2 Line 3 Line 4 Line 5
注意,while 循環(huán)內(nèi)的 ++i 語句 。在5次迭代之后,變量i將增加到6。然后,將測試表達(dá)式 i <= 5 求值為false,并終止循環(huán)。
如果循環(huán)的主體只有一個(gè)語句,則不必使用花括號(hào){ }。
//程序計(jì)算1到100的自然數(shù)之和。 fun main(args: Array<String>) { var sum = 0 var i = 100 while (i != 0) { sum += i // sum = sum + i; --i } println("sum = $sum") }
運(yùn)行該程序時(shí),輸出為:
sum = 5050
在這里,變量 sum 被初始化為 0 ,同時(shí)i初始化為 100。在while循環(huán)的每次迭代中,sum變量都被分配 sum + i,并且i的值減小1直到i等于0。
第1次迭代: sum = 0+100 = 100, i = 99 第2次迭代: sum = 100+99 = 199, i = 98 第3次迭代: sum = 199+98 = 297, i = 97 ... .. ... ... .. ... 第99次迭代: sum = 5047+2 = 5049, i = 1 第100次迭代: sum = 5049+1 = 5050, i = 0 (循環(huán)終止)
要了解有關(guān)測試表達(dá)式及其評(píng)估方式的更多信息,請?jiān)L問比較和邏輯運(yùn)算符。
do...while循環(huán)類似于while一個(gè)關(guān)鍵區(qū)別在于循環(huán)。do...while循環(huán)主體在檢查測試表達(dá)式之前執(zhí)行一次。
其語法為:
do { //do while循環(huán)體內(nèi)的代碼 } while (testExpression);
do主體內(nèi)的代碼執(zhí)行一次(不檢查testExpression)。 然后,檢查測試表達(dá)式。
如果將 測試表達(dá)式 評(píng)估為true,則執(zhí)行循環(huán)體內(nèi)的代碼,然后再次評(píng)估測試表達(dá)式。這個(gè)過程一直進(jìn)行到測試表達(dá)式被評(píng)估為false為止。
當(dāng)測試表達(dá)式評(píng)估為時(shí)false,do..while循環(huán)終止。
下面的程序計(jì)算用戶輸入的數(shù)字總和,直到用戶輸入0。
為了接受用戶的輸入,使用readline()函數(shù)。推薦閱讀: Kotlin輸入
fun main(args: Array<String>) { var sum: Int = 0 var input: String do { print("輸入一個(gè)整數(shù): ") input = readLine()!! sum += input.toInt() } while (input != "0") println("sum = $sum") }
當(dāng)您運(yùn)行程序時(shí),輸出將如下所示:
輸入一個(gè)整數(shù): 4 輸入一個(gè)整數(shù): 3 輸入一個(gè)整數(shù): 2 輸入一個(gè)整數(shù): -6 輸入一個(gè)整數(shù): 0 sum = 3