循环 (for, while, do-while)

在编程中,循环是一种重要的控制结构,它允许我们重复执行一段代码,直到满足某个条件为止。Kotlin 提供了三种主要的循环结构:for、while 和 do-while。每种循环都有其特定的使用场景和语法。

1. for 循环

for 循环通常用于遍历集合或范围。它的语法简洁明了,适合处理已知次数的循环。

1.1 基本语法

for (item in collection) {
    // 循环体
}

1.2 示例

1.2.1 遍历数组

val numbers = arrayOf(1, 2, 3, 4, 5)
for (number in numbers) {
    println(number)
}

1.2.2 遍历范围

for (i in 1..5) {
    println(i)
}

1.3 实践练习

编写一个程序,使用 for 循环计算 1 到 100 的所有偶数的和。

var sum = 0
for (i in 1..100) {
    if (i % 2 == 0) {
        sum += i
    }
}
println("Sum of even numbers from 1 to 100: $sum")

2. while 循环

while 循环在执行循环体之前检查条件。如果条件为真,则执行循环体;否则,循环终止。

2.1 基本语法

while (condition) {
    // 循环体
}

2.2 示例

2.2.1 基本 while 循环

var count = 0
while (count < 5) {
    println("Count: $count")
    count++
}

2.3 实践练习

编写一个程序,使用 while 循环计算 1 到 100 的所有奇数的和。

var sum = 0
var i = 1
while (i <= 100) {
    if (i % 2 != 0) {
        sum += i
    }
    i++
}
println("Sum of odd numbers from 1 to 100: $sum")

3. do-while 循环

do-while 循环与 while 循环类似,但它在执行循环体之后检查条件。这意味着循环体至少会执行一次。

3.1 基本语法

do {
    // 循环体
} while (condition)

3.2 示例

3.2.1 基本 do-while 循环

var count = 0
do {
    println("Count: $count")
    count++
} while (count < 5)

3.3 实践练习

编写一个程序,使用 do-while 循环计算 1 到 100 的所有 3 的倍数的和。

var sum = 0
var i = 1
do {
    if (i % 3 == 0) {
        sum += i
    }
    i++
} while (i <= 100)
println("Sum of multiples of 3 from 1 to 100: $sum")

4. 跳转表达式

在循环中,我们有时需要提前终止循环或跳过当前迭代。Kotlin 提供了 break 和 continue 来实现这些功能。

4.1 break

break 用于立即终止循环。

for (i in 1..10) {
    if (i == 5) {
        break
    }
    println(i)
}

4.2 continue

continue 用于跳过当前迭代,继续下一次迭代。

for (i in 1..10) {
    if (i % 2 == 0) {
        continue
    }
    println(i)
}

4.3 实践练习

编写一个程序,使用 for 循环和 break 计算 1 到 100 的所有数的和,直到和超过 1000 为止。

var sum = 0
for (i in 1..100) {
    sum += i
    if (sum > 1000) {
        break
    }
}
println("Sum exceeded 1000 at: $sum")

5. 总结

循环是编程中的基本结构之一,掌握 for、while 和 do-while 循环的使用,以及 break 和 continue 的用法,对于编写高效的程序至关重要。通过实践练习,你可以更好地理解和应用这些循环结构。

6. 下一步

接下来,我们将学习 Kotlin 中的函数定义和调用,这是编程中的另一个重要主题。函数允许我们将代码模块化,提高代码的可读性和可维护性。