Kotlin while 和 do...while 循环

循环在编程中用于重复执行一段代码,直到满足特定条件(测试表达式为 false)。

循环是使计算机成为有趣机器的原因。假设您需要在屏幕上打印一条句子 50 次。嗯,您可以通过使用 print 语句 50 次(不使用循环)来实现。如果需要打印一条句子一百万次呢?您需要使用循环。

在本文中,您将通过示例学习两种循环:whiledo..while

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


Kotlin while 循环

while 循环的语法是

while (testExpression) {
    // codes inside body of while loop
}

while 循环如何工作?

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

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

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

这个过程一直持续到测试表达式被评估为 false

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

  • 则终止 while 循环。

while 循环的流程图

Kotlin while Loop Flowchart


示例:Kotlin while 循环

// Program to print line 5 times

fun main(args: Array<String>) {

    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 <= 5false,循环终止。


如果循环体只有一条语句,则不必使用大括号 { }。 


示例:计算自然数之和

// Program to compute the sum of natural numbers from 1 to 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。为了更好地可视化,

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 do...while 循环

do...while 循环与 while 循环类似,但有一个关键区别。do...while 循环的循环体会在检查测试表达式之前执行一次。 

其语法为

do {
   // codes inside body of do while loop
} while (testExpression);

do...while 循环如何工作?

do 结构内的代码会执行一次(不检查 testExpression)。然后,检查测试表达式。

如果测试表达式被评估为 true,则执行循环体内的代码,并再次评估测试表达式。这个过程一直持续到测试表达式被评估为 false

当测试表达式被评估为 false 时,do..while 循环终止。


do...while 循环的流程图

Kotlin do...while Loop flowchart


示例:Kotlin do...while 循环

下面的程序计算用户输入的数字之和,直到用户输入 0。

要从用户那里获取输入,请使用 readline() 函数。推荐阅读: Kotlin 基本输入

fun main(args: Array<String>) {

    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
你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战