Kotlin
// ============================================
// 第 2 课:条件判断、循环、函数
// ============================================
fun main() {
// ========== 一、条件判断 if / else ==========
val score = 85
// 根据条件走不同的分支
if (score >= 60) {
println("及格了!")
} else {
println("不及格...")
}
// 多个条件用 else if 串起来
if (score >= 90) {
println("优秀")
} else if (score >= 80) {
println("良好") // 85 落在这里
} else {
println("继续加油")
}
// 【Kotlin 特色】if 还能"返回值",直接把结果赋给变量
// 相当于:如果分数>=60,level 就是"通过",否则是"未通过"
val level = if (score >= 60) "通过" else "未通过"
println("结果:$level")
// ========== 二、when:更清爽的多分支 ==========
// 当要根据一个变量的不同取值做不同处理时,when 比一堆 if 更好读
val day = 3
val name = when (day) {
1 -> "星期一"
2 -> "星期二"
3 -> "星期三" // day=3 命中这里
6, 7 -> "周末" // 可以多个值共用一个分支
else -> "未知" // 其它所有情况
}
println("今天是$name")
// when 也能判断范围
val comment = when (score) {
in 90..100 -> "满分段"
in 60..89 -> "普通段" // 85 命中(in 60..89 表示 60 到 89 之间)
else -> "需努力"
}
println("评语:$comment")
// ========== 三、循环 ==========
// for 循环:遍历一个范围。1..5 表示 1,2,3,4,5
print("正着数:")
for (i in 1..5) {
print("$i ")
}
println() // 换行
// until:不包含结尾。1 until 5 表示 1,2,3,4
print("until(不含5):")
for (i in 1 until 5) print("$i ")
println()
// step:步长。倒着数用 downTo
print("倒着数:")
for (i in 5 downTo 1) print("$i ")
println()
// while 循环:只要条件为真就一直转
print("while倒计时:")
var n = 3
while (n > 0) {
print("$n ")
n = n - 1 // 每次减 1,否则会死循环
}
println("发射!")
// ========== 四、调用我们自己写的函数 ==========
// main 是入口,但真正的功能我们通常拆成一个个函数
val sum = add(3, 5) // 调用下面定义的 add 函数
println("3 + 5 = $sum")
greet("小明") // 使用默认问候语
greet("小红", "晚上好") // 自己传问候语
// 具名参数:调用时写清楚参数名,顺序可以打乱,可读性更好
greet(greeting = "早上好", who = "老师")
}
// ========== 函数的定义 ==========
// fun 函数名(参数名: 类型, ...): 返回类型 { ... }
// 这个函数接收两个 Int,返回它们的和(Int)
fun add(a: Int, b: Int): Int {
return a + b // return 把结果"送回"给调用处
}
// 带"默认参数"的函数:调用时不传 greeting,就用默认的 "你好"
fun greet(who: String, greeting: String = "你好") {
// 这个函数只负责打印,不返回东西,所以没写返回类型
println("$greeting,$who!")
}
全部跑通了 🎉 运行结果:
及格了!
良好
结果:通过
今天是星期三
评语:普通段
正着数:1 2 3 4 5
until(不含5):1 2 3 4
倒着数:5 4 3 2 1
while倒计时:3 2 1 发射!
3 + 5 = 8
你好,小明!
晚上好,小红!
早上好,老师!
第 2 课知识点复盘
一、条件判断 if / else
根据条件走不同分支。Kotlin 有个特色:if 本身能返回值,可以直接赋给变量:
val level = if (score >= 60) "通过" else "未通过"
这在别的语言(比如 Java)里做不到,很方便。
二、when ------ 多分支神器
当要根据一个值的不同情况做不同处理时,when 比一堆 if-else if 清爽得多:
02_control_and_functions.ktLines 1-1
1 -> "星期一"
要点:
6, 7 -> "周末":多个值共用一个分支in 90..100:判断范围else:兜底(其它所有情况)
三、循环 ------ 让代码重复干活
| 写法 | 含义 | 例子 |
|---|---|---|
1..5 |
1 到 5(包含 5) | 1 2 3 4 5 |
1 until 5 |
1 到 5(不含 5) | 1 2 3 4 |
5 downTo 1 |
倒着数 | 5 4 3 2 1 |
while (条件) |
条件为真就一直转 | 倒计时 |
⚠️
while里一定要有让条件"最终变假"的语句(比如n = n - 1),否则程序会死循环卡住。
四、函数 ------ 把功能打包复用
这是最重要的概念。函数就是"给一段代码起个名字,以后随时调用"。
fun add(a: Int, b: Int): Int {
return a + b
}
拆解这行"函数签名":
| 部分 | 含义 |
|---|---|
fun |
声明这是一个函数 |
add |
函数名(自己起) |
(a: Int, b: Int) |
参数:接收两个整数 |
: Int |
返回类型:返回一个整数 |
return a + b |
把结果送回去 |
进阶技巧你也见到了:
- 默认参数:
greeting: String = "你好"→ 调用时可以不传 - 具名参数:
greet(greeting = "早上好", who = "老师")→ 写清参数名,顺序可乱
小练习 ✍️
试着自己写一个函数(可以让我帮你跑):
写一个函数
fun isAdult(age: Int): Boolean,如果年龄 ≥ 18 就返回true,否则返回false。然后在main里测试isAdult(20)和isAdult(15)。