Kotlin while 和 do...while 循环
- Kotlin while 和 do...while 循环的基本用 途:在 Kotlin 中,
while
和do...while
循环用于重复执行代码块,直到满足特定条件(测试表达式为false
)。 - while 循环的工作原理:在
while
循环中,首先检查测试表达式。如果为true
,循环体内的代码被执行,然后再次评估测试表达式。这个过程持续进行,直到测试表达式为false
。 - do...while 循环的特点:
do...while
循环与while
循环相似,但其循环体在检查测试表达式之前至少执行一次,即使测试表达式最初为false
。
在编程中使用循环是为了重复执行特定的代码块,直到满足某个条件(测试表达式为 false
)。
循环是让计算机成为有趣机器的原因。想象一下,如果你需要在屏幕上打印一句话 50 次。嗯,你可以通过使用打印语句 50 次来做到这一点(不使用循环)。那如果你需要打印一句话一百万次呢?这时你就需要使用循环了。
在这篇文章中,你将通过示例学习关于 while
和 do..while
两种循环。
如果你熟悉 Java 中的 while 和 do...while 循环,那么你也已经熟悉了 Kotlin 中的这些循环。
Kotlin 中的 while 循环
while
循环的语法是:
while (testExpression) {
// while 循环体内的代码
}
while 循环是如何工作的?
括号内的测试表达式是一个 布尔 表达式。
如果测试表达 式被评估为 true
,
- while 循环内的语句将被执行。
- 然后,再次评估测试表达式。
这个过程一直进行,直到测试表达式被评估为 false
。
如果测试表达式被评估为 false
,
- while 循环终止。
while 循环的流程图
示例:Kotlin while 循环
// 程序打印 5 次行
fun main(args: Array<String>) {
var i = 1
while (i <= 5) {
println("行 $i")
++i
}
}
当你运行程序时,输出将是:
行 1
行 2
行 3
行 4
行 5
注意,while
循环中的 ++i
语句。经过 5 次迭代后,变量 i
将增加到 6。然后,测试表达式 i <= 5
被评估为 false
,循环终止。
如果循环体只有一个语句,就没有必要使用花括号 { }
。
示例:计算自然数的和
// 程序计算从 1 到 100 的自然数之和。
fun main(args: Array<String>) {
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。为了更好的可视化,
第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 (然后循环终止)
要了解更多关于测试表达式以及它是如何评估的,请访问 比较 和 逻辑运算符。
Kotlin 中的 do...while 循环
do...while
循环与 while
循环类似,但有一个关键区别。do...while
循环的主 体在检查测试表达式之前执行一次。
它的语法是:
do {
// do while 循环体内的代码
} while (testExpression);
do...while 循环是如何工作的?
do
结构体内的代码首先执行一次(不检查 testExpression
)。然后,检查测试表达式。
如果测试表达式被评估为 true
,循环体内的代码被执行,并且再次评估测试表达式。这个过程一直进行,直到测试表达式被评估为 false
。
当测试表达式被评估为 false
时,do..while
循环终止。
do...while 循环的流程图
示例:Kotlin do...while 循环
下面的程序计算用户输入的数值之和,直到用户输入 0。
为了从用户那里获取输入,使用了 readline()
函数。推荐阅读: Kotlin 基本输入
fun main(args: Array<String>) {
var sum: Int = 0
var input: String
do {
print("请输入一个整数:")
input = readLine()!!
sum += input.toInt()
} while (input != "0")
println("sum = $sum")
}
当你运行程序时,输出将会是类似这样的:
请输入一个整数:4
请输入一个整数:3
请输入一个整数:2
请输入一个整数:-6
请输入一个整数:0
sum = 3