Kotlin do 关键字
最后修改于 2025 年 4 月 19 日
Kotlin 的控制流包括 do-while
循环结构,其中 do
起着关键作用。此循环确保代码在检查条件之前至少执行一次。本教程通过实际例子深入探讨 do
关键字。
基本定义
Kotlin 中的 do
关键字用于创建 do-while
循环。与普通的 while
循环不同,do-while
先执行代码块,然后检查条件。这保证至少执行一次迭代。
基本的 do-while 循环
最简单的 do-while
循环形式是在检查条件之前执行一次代码块。如果条件为真,则重复该块。
package com.zetcode fun main() { var i = 0 do { println(i) i++ } while (i < 5) }
此示例打印数字 0 到 4。首先执行循环体,然后检查条件。即使 i 从 5 开始,循环也至少运行一次。
do-while 与假条件
do-while
的一个关键特性是至少执行一次,即使条件最初为假。这与可能根本不运行的 while
不同。
package com.zetcode fun main() { var flag = false do { println("This runs once") } while (flag) }
尽管 flag
为 false,但该消息打印一次。这演示了在检查条件之前保证执行 do
块。
使用 do-while 进行输入验证
do-while
非常适合需要至少提示一次的输入验证。循环持续进行,直到收到有效输入。
package com.zetcode fun main() { var input: Int? do { print("Enter a positive number: ") input = readLine()?.toIntOrNull() } while (input == null || input <= 0) println("You entered: $input") }
此循环重复提示输入,直到提供正数。do
块确保在检查之前至少出现一次提示。
嵌套的 do-while 循环
do-while
循环可以互相嵌套以处理复杂的迭代场景。每个循环维护自己的条件和迭代逻辑。
package com.zetcode fun main() { var i = 1 do { var j = 1 do { print("${i * j}\t") j++ } while (j <= 10) println() i++ } while (i <= 5) }
此示例打印从 1 到 5 的乘法表。外循环控制行,而内循环处理列。两个循环都使用 do-while
结构。
带 break 的 do-while
break
语句可以提前退出 do-while
循环。当您需要基于复杂条件停止迭代时,这很有用。
package com.zetcode fun main() { var num = 0 do { num++ println(num) if (num == 3) { break } } while (num < 5) }
此循环通常会打印 1 到 5,但 break
在 3 处退出。输出显示 1、2、3。在 break 之后,条件 num < 5
变得无关紧要。
带 continue 的 do-while
continue
语句跳过 do-while
循环中当前迭代的其余部分。它跳转到条件检查,同时保留循环状态。
package com.zetcode fun main() { var i = 0 do { i++ if (i % 2 == 0) { continue } println(i) } while (i < 10) }
此示例打印 1 到 10 之间的奇数。当 i
为偶数时,continue
跳过打印语句。循环仍然在每次迭代中递增 i
。
无限 do-while 循环
一个无限 do-while
循环永远运行,除非外部停止。这种模式对于需要持续运行的程序很有用。
package com.zetcode fun main() { var count = 0 do { println("Running... ${++count}") Thread.sleep(1000) } while (true) }
此循环每秒打印一条消息,无限期地进行。在实践中,您会添加一个中断条件或使用 Ctrl+C 来停止它。true
条件确保永久执行。
do-while 的最佳实践
- 当需要保证执行时使用: 当代码块必须至少运行一次时,选择
do-while
。 - 避免复杂的条件: 保持循环条件简单,以获得更好的可读性和可维护性。
- 确保终止: 始终有一个明确的退出条件以防止无限循环。
- 考虑替代方案: 对于集合,优先使用
for
循环,这在 Kotlin 中更符合习惯用法。 - 限制嵌套: 深度嵌套的
do-while
循环可能会变得难以理解和维护。
来源
本教程深入介绍了 Kotlin 的 do
关键字,展示了各种 do-while
循环场景。我们探讨了基本用法、输入验证、嵌套和控制语句。当您需要保证第一次迭代时,正确使用 do-while
可以使您的代码更健壮。
作者
列出 所有 Kotlin 教程。