在 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
循环让用户输入一个有效的年龄:
-- -------------------- ---- ------- --- ------ - --- ---- ---- - ---- ----- ---- -- ---- -- --- - - -- --- - ---- - -------------------------- --- ----- - ---------- --- - -------------------- -- ---------- -- ---- -- ---- -- --- - - -- --- - ---- - ----------------------- - - ----------------------- -
在这个例子中,我们要求用户输入一个年龄,并通过一个条件表达式检查该年龄是否有效。如果输入无效(比如输入了负数、非数字字符或者年龄超出合理范围),循环将继续运行,直到用户输入一个有效的年龄为止。
while
循环的注意事项
虽然 while
循环非常有用,但在使用时需要注意以下几点:
- 死循环:确保条件表达式最终能够变为
false
,否则循环将永远执行下去,形成死循环。 - 性能考虑:对于已知循环次数的场景,使用
for
循环可能更高效。 - 代码可读性:尽管
while
循环适用于某些场景,但过度使用可能会降低代码的可读性。因此,在选择循环结构时应权衡各种因素。
练习题
为了更好地理解 while
循环,尝试完成以下练习:
- 编写一个程序,要求用户连续输入若干个整数,直到用户输入一个负数为止。程序应输出所有正整数的平均值。
- 创建一个程序,模拟一个简单的计时器,使用
while
循环每秒打印一次倒计时(从 60 开始递减)直到计数器归零。
通过这些练习,你可以加深对 while
循环的理解,并掌握其在实际编程中的应用技巧。