原文: https://www.programiz.com/kotlin-programming/while-loop

循环在编程中用于重复特定的代码块。 在本文中,您将学习在 Kotlin 编程中创建whiledo...while循环。

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

循环使计算机成为有趣的机器。 想象一下,您需要在屏幕上打印一个句子 50 次。 好吧,您可以通过使用print语句 50 次(不使用循环)来做到这一点。 您需要打印一百万次句子怎么样? 您需要使用循环。

您将在示例的帮助下了解两个循环whiledo..while

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


Kotlin while循环

while循环的语法为:

  1. while (testExpression) {
  2. // codes inside body of while loop
  3. }

while循环如何工作?

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

如果测试表达式的计算结果为true

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

该过程一直进行到测试表达式被求值为false为止。

如果测试表达式的计算结果为false

  • while循环终止。

While循环流程图

Kotlin `while`和`do...while`循环 - 图1


示例:Kotlin while循环

  1. // Program to print line 5 times
  2. fun main(args: Array<String>) {
  3. var i = 1
  4. while (i <= 5) {
  5. println("Line $i")
  6. ++i
  7. }
  8. }

运行该程序时,输出为:

  1. Line 1
  2. Line 2
  3. Line 3
  4. Line 4
  5. Line 5

注意,while循环内的++i语句。 在 5 次迭代之后,变量i将增加到 6。然后,将测试表达式i <= 5求值为false,然后循环终止。


如果循环的主体只有一个语句,则不必使用花括号{ }


示例:计算自然数之和

  1. // Program to compute the sum of natural numbers from 1 to 100.
  2. fun main(args: Array<String>) {
  3. var sum = 0
  4. var i = 100
  5. while (i != 0) {
  6. sum += i // sum = sum + i;
  7. --i
  8. }
  9. println("sum = $sum")
  10. }

运行该程序时,输出为:

  1. sum = 5050

在此,变量sum初始化为 0,并且i初始化为 100。在while循环的每次迭代中,变量sum被分配为sum + i,并且i的值减小 1,直到i等于 0。

  1. 1st iteration: sum = 0+100 = 100, i = 99
  2. 2nd iteration: sum = 100+99 = 199, i = 98
  3. 3rd iteration: sum = 199+98 = 297, i = 97
  4. ... .. ...
  5. ... .. ...
  6. 99th iteration: sum = 5047+2 = 5049, i = 1
  7. 100th iteration: sum = 5049+1 = 5050, i = 0 (then loop terminates)

要了解有关测试表达式及其求值方式的更多信息,请访问比较逻辑运算符


Kotlin do...while循环

do...while循环类似于while循环,但有一个按键差异。 在检查测试表达式之前,do...while循环的主体将执行一次。

其语法为:

  1. do {
  2. // codes inside body of do while loop
  3. } while (testExpression);

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

do构造体内的代码只执行一次(无需检查testExpression)。 然后,检查测试表达式。

如果将测试表达式求值为true,则执行循环体内的代码,然后再次求值测试表达式。 该过程一直进行到测试表达式被求值为false为止。

当测试表达式求值为false时,do..while循环终止。


do...while循环的流程图

Kotlin `while`和`do...while`循环 - 图2


示例:Kotlin do...while循环

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

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

  1. fun main(args: Array<String>) {
  2. var sum: Int = 0
  3. var input: String
  4. do {
  5. print("Enter an integer: ")
  6. input = readLine()!!
  7. sum += input.toInt()
  8. } while (input != "0")
  9. println("sum = $sum")
  10. }

当您运行程序时,输出将类似于:

  1. Enter an integer: 4
  2. Enter an integer: 3
  3. Enter an integer: 2
  4. Enter an integer: -6
  5. Enter an integer: 0
  6. sum = 3