在 Kotlin 中,循环是程序执行中的重要组成部分,它允许我们重复执行一段代码直到满足特定条件。while 循环是最基础的循环结构之一,它的主要特点是根据给定的条件来决定是否继续执行循环体内的代码。
while 循环的基本结构
while 循环的基本形式如下:
while (条件表达式) {
// 循环体代码块
}这里的条件表达式是一个布尔值表达式,循环体则是位于大括号 {} 内的一段或多段代码。只有当条件表达式的结果为 true 时,循环体内的代码才会被执行。每次循环结束时,都会重新评估条件表达式,如果条件依然为 true,则再次执行循环体。
示例:使用 while 循环打印数字
下面是一个简单的例子,展示了如何使用 while 循环打印从 1 到 5 的数字:
fun main() {
var counter = 1
while (counter <= 5) {
println("当前数字: $counter")
counter++ // 每次循环后,counter 自增 1
}
}在这个例子中,counter 变量被初始化为 1。每次循环开始时,都会检查 counter 是否小于或等于 5。如果是,则执行循环体内的代码并打印当前的 counter 值,然后将 counter 的值加 1。这个过程会一直持续到 counter 的值大于 5,此时条件表达式不再为 true,循环终止。
while 循环的使用场景
虽然 while 循环可以用来解决许多问题,但它最适用的情况是当你事先不知道循环需要执行多少次,或者循环次数取决于某种外部因素或输入。
示例:用户输入验证
下面的例子展示了如何使用 while 循环让用户输入一个有效的年龄:
// www.javascriptcn.com code example
fun main() {
var age: Int? = null
while (age == null || age < 0 || age > 120) {
print("请输入您的年龄(0-120之间):")
val input = readLine()
age = input?.toIntOrNull() // 尝试将输入转换为整数
if (age == null || age < 0 || age > 120) {
println("无效的年龄,请重新输入!")
}
}
println("您输入的年龄是:$age")
}在这个例子中,我们要求用户输入一个年龄,并通过一个条件表达式检查该年龄是否有效。如果输入无效(比如输入了负数、非数字字符或者年龄超出合理范围),循环将继续运行,直到用户输入一个有效的年龄为止。
while 循环的注意事项
虽然 while 循环非常有用,但在使用时需要注意以下几点:
- 死循环:确保条件表达式最终能够变为
false,否则循环将永远执行下去,形成死循环。 - 性能考虑:对于已知循环次数的场景,使用
for循环可能更高效。 - 代码可读性:尽管
while循环适用于某些场景,但过度使用可能会降低代码的可读性。因此,在选择循环结构时应权衡各种因素。
练习题
为了更好地理解 while 循环,尝试完成以下练习:
- 编写一个程序,要求用户连续输入若干个整数,直到用户输入一个负数为止。程序应输出所有正整数的平均值。
- 创建一个程序,模拟一个简单的计时器,使用
while循环每秒打印一次倒计时(从 60 开始递减)直到计数器归零。
通过这些练习,你可以加深对 while 循环的理解,并掌握其在实际编程中的应用技巧。