跳到主要内容

Kotlin while 和 do...while 循环

提示
  1. Kotlin while 和 do...while 循环的基本用途:在 Kotlin 中,whiledo...while 循环用于重复执行代码块,直到满足特定条件(测试表达式为 false)。
  2. while 循环的工作原理:在 while 循环中,首先检查测试表达式。如果为 true,循环体内的代码被执行,然后再次评估测试表达式。这个过程持续进行,直到测试表达式为 false
  3. do...while 循环的特点do...while 循环与 while 循环相似,但其循环体在检查测试表达式之前至少执行一次,即使测试表达式最初为 false

在编程中使用循环是为了重复执行特定的代码块,直到满足某个条件(测试表达式为 false)。

循环是让计算机成为有趣机器的原因。想象一下,如果你需要在屏幕上打印一句话 50 次。嗯,你可以通过使用打印语句 50 次来做到这一点(不使用循环)。那如果你需要打印一句话一百万次呢?这时你就需要使用循环了。

在这篇文章中,你将通过示例学习关于 whiledo..while 两种循环。

如果你熟悉 Java 中的 while 和 do...while 循环,那么你也已经熟悉了 Kotlin 中的这些循环。

Kotlin 中的 while 循环

while 循环的语法是:

while (testExpression) {
// while 循环体内的代码
}

while 循环是如何工作的?

括号内的测试表达式是一个 布尔 表达式。

如果测试表达式被评估为 true

  • while 循环内的语句将被执行。
  • 然后,再次评估测试表达式。

这个过程一直进行,直到测试表达式被评估为 false

如果测试表达式被评估为 false

  • while 循环终止。

while 循环的流程图

Kotlin 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 循环流程图

示例: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