循环在编程中用于重复特定的代码块,直到满足特定条件(测试表达式为false)
。
循环使计算机成为有趣的机器。想象一下,您需要在屏幕上打印一个句子50次。好吧,您可以通过使用print语句50次(不使用循环)来做到这一点。您需要打印一百万次句子怎么样?您需要使用循环。
您将在示例的帮助下学习while
和do..while
两个循环。
如果您熟悉Java中的while和do … while循环,那么您也已经熟悉Kotlin中的这些循环。
Kotlin while Loop
while
循环的语法为:
while (testExpression) {
// codes inside body of while loop
}
while循环如何工作?
括号内的测试表达式是布尔表达式。
如果测试表达式的值为true
,
- while循环内的语句将被执行。
- 然后,再次评估测试表达式。
这个过程一直进行到测试表达式被评估为false
为止。
如果测试表达式的计算结果为false
,
- while循环终止。
While循环流程图
示例:Kotlin while循环
// Program to print line 5 times
fun main(args: Array) {
var i = 1
while (i <= 5) {
println("Line $i")
++i
}
}
运行该程序时,输出为:
Line 1
Line 2
Line 3
Line 4
Line 5
注意, while
循环内的++i
语句。在5次迭代之后,变量i将增加到6。然后,将测试表达式i <= 5
评估为false
,并且循环终止。
如果循环的主体只有一个语句,则不必使用大括号{ }
。
示例:计算自然数之和
// Program to compute the sum of natural numbers from 1 to 100.
fun main(args: Array) {
var sum = 0
var i = 100
while (i != 0) {
sum += i // sum = sum + i;
--i
}
println("sum = $sum")
}
运行该程序时,输出为:
sum = 5050
这里,变量sum被初始化为0和i初始化为100。在while循环的每次迭代中,变量sum被分配sum + i
,和i的值减1,直到i等于0。对于更好的可视化,
1st iteration: sum = 0+100 = 100, i = 99
2nd iteration: sum = 100+99 = 199, i = 98
3rd iteration: sum = 199+98 = 297, i = 97
... .. ...
... .. ...
99th iteration: sum = 5047+2 = 5049, i = 1
100th iteration: sum = 5049+1 = 5050, i = 0 (then loop terminates)
要了解有关测试表达式及其评估方式的更多信息,请访问比较和逻辑运算符。
Kotlin做… while循环
do...while
循环类似于while
循环, while
有一个关键区别。 do...while
循环的主体在检查测试表达式之前执行一次。
其语法为:
do {
// codes inside body of do while loop
} while (testExpression);
… while循环如何工作?
do
构造体内的代码只执行一次(无需检查testExpression )。然后,检查测试表达式。
如果将测试表达式评估为true
,则执行循环体内的代码,然后再次评估测试表达式。这个过程一直进行到测试表达式被评估为false
为止。
当测试表达式的计算结果为false
, do..while
循环终止。
do … while循环流程图
示例:Kotlin do … while循环
下面的程序计算用户输入的数字总和,直到用户输入0。
为了接受用户的输入,使用了readline()
函数 。 推荐读物: Kotlin基本输入法
fun main(args: Array) {
var sum: Int = 0
var input: String
do {
print("Enter an integer: ")
input = readLine()!!
sum += input.toInt()
} while (input != "0")
println("sum = $sum")
}
当您运行程序时,输出将如下所示:
Enter an integer: 4
Enter an integer: 3
Enter an integer: 2
Enter an integer: -6
Enter an integer: 0
sum = 3