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 教程。