跳到主要内容

Kotlin控制流语句

在编程中,控制流语句用于控制程序的执行顺序。Kotlin提供了多种控制流语句,包括条件语句、循环语句和跳转语句。这些语句可以帮助你根据不同的条件执行不同的代码块,或者重复执行某些代码块。

条件语句

条件语句用于根据条件执行不同的代码块。Kotlin中的条件语句包括 ifwhen

if 语句

if 语句用于根据条件执行不同的代码块。它的基本语法如下:

kotlin
if (condition) {
// 条件为真时执行的代码
} else {
// 条件为假时执行的代码
}

示例:

kotlin
val number = 10

if (number > 0) {
println("数字是正数")
} else {
println("数字是负数或零")
}

输出:

数字是正数
提示

在Kotlin中,if 语句还可以作为表达式使用,返回一个值。例如:

kotlin
val result = if (number > 0) "正数" else "负数或零"
println(result)

输出:

正数

when 语句

when 语句类似于其他语言中的 switch 语句,但功能更强大。它可以根据不同的条件执行不同的代码块。基本语法如下:

kotlin
when (expression) {
value1 -> {
// 当 expression 等于 value1 时执行的代码
}
value2 -> {
// 当 expression 等于 value2 时执行的代码
}
else -> {
// 当 expression 不等于任何值时执行的代码
}
}

示例:

kotlin
val day = 3

when (day) {
1 -> println("星期一")
2 -> println("星期二")
3 -> println("星期三")
else -> println("其他")
}

输出:

星期三
备注

when 语句也可以作为表达式使用,返回一个值。例如:

kotlin
val dayType = when (day) {
1, 2, 3, 4, 5 -> "工作日"
6, 7 -> "周末"
else -> "无效"
}
println(dayType)

输出:

工作日

循环语句

循环语句用于重复执行某些代码块。Kotlin中的循环语句包括 forwhile

for 循环

for 循环用于遍历集合或范围。基本语法如下:

kotlin
for (item in collection) {
// 遍历集合中的每个元素时执行的代码
}

示例:

kotlin
val numbers = listOf(1, 2, 3, 4, 5)

for (number in numbers) {
println(number)
}

输出:

1
2
3
4
5
提示

你还可以使用 for 循环遍历一个范围。例如:

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

输出:

1
2
3
4
5

while 循环

while 循环用于在条件为真时重复执行代码块。基本语法如下:

kotlin
while (condition) {
// 条件为真时执行的代码
}

示例:

kotlin
var i = 1

while (i <= 5) {
println(i)
i++
}

输出:

1
2
3
4
5
警告

在使用 while 循环时,务必确保循环条件最终会变为假,否则会导致无限循环。

do-while 循环

do-while 循环与 while 循环类似,但它会先执行一次代码块,然后再检查条件。基本语法如下:

kotlin
do {
// 先执行一次代码块
} while (condition)

示例:

kotlin
var i = 1

do {
println(i)
i++
} while (i <= 5)

输出:

1
2
3
4
5

跳转语句

跳转语句用于改变程序的执行顺序。Kotlin中的跳转语句包括 breakcontinuereturn

break 语句

break 语句用于立即终止循环。它通常与 if 语句一起使用,用于在满足某个条件时退出循环。

示例:

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

输出:

1
2
3
4

continue 语句

continue 语句用于跳过当前循环的剩余部分,直接进入下一次循环。

示例:

kotlin
for (i in 1..5) {
if (i == 3) {
continue
}
println(i)
}

输出:

1
2
4
5

return 语句

return 语句用于从函数中返回一个值,并终止函数的执行。

示例:

kotlin
fun checkNumber(number: Int): String {
return if (number > 0) {
"正数"
} else {
"负数或零"
}
}

println(checkNumber(10))

输出:

正数

实际案例

假设你正在开发一个简单的猜数字游戏,用户需要猜一个1到100之间的随机数。你可以使用控制流语句来实现这个游戏。

kotlin
import kotlin.random.Random

fun main() {
val randomNumber = Random.nextInt(1, 101)
var guess: Int
var attempts = 0

println("猜数字游戏开始!")

do {
print("请输入你猜的数字(1-100):")
guess = readLine()?.toIntOrNull() ?: 0
attempts++

when {
guess < randomNumber -> println("猜小了!")
guess > randomNumber -> println("猜大了!")
else -> println("恭喜你,猜对了!你用了 $attempts 次尝试。")
}
} while (guess != randomNumber)
}

输出示例:

猜数字游戏开始!
请输入你猜的数字(1-100):50
猜大了!
请输入你猜的数字(1-100):25
猜小了!
请输入你猜的数字(1-100):37
猜大了!
请输入你猜的数字(1-100):31
恭喜你,猜对了!你用了 4 次尝试。

总结

Kotlin中的控制流语句包括条件语句、循环语句和跳转语句。通过合理使用这些语句,你可以控制程序的执行顺序,实现复杂的逻辑。在实际开发中,控制流语句是编写高效、可读性强的代码的关键。

附加资源与练习

  • 练习1:编写一个Kotlin程序,使用 for 循环打印1到100之间的所有偶数。
  • 练习2:编写一个Kotlin程序,使用 when 语句判断一个年份是否为闰年。
  • 练习3:修改猜数字游戏,限制用户最多只能猜10次,如果10次内没有猜中,则游戏结束。

通过完成这些练习,你将更好地掌握Kotlin中的控制流语句。