Kotlin Multiplatform day2

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)

相关推荐
花燃柳卧4 小时前
跨平台路由组件工程源码补充上传
android·flutter·kotlin
TechNomad5 小时前
Kotlin类对象与接口详解
android·kotlin
TechNomad1 天前
Kotlin_Lambda编程详解
android·kotlin
plainGeekDev1 天前
ProGuard → R8
android·java·kotlin
aidou13141 天前
Kotlin中沉浸式状态栏显示布局
android·kotlin·windowmanager·沉浸式状态栏·insetslistener·insetscompat·systembars
Kapaseker1 天前
扶我起来,Compose Styles API 进阶
android·kotlin
机智的张尼玛2 天前
我基于 Kotlin Multiplatform 实现了一套跨平台的弱网离线同步引擎
android·开源·kotlin
我是唐青枫2 天前
Kotlin 运算符重载详解:为什么 a += b 有时改对象,有时换对象?
开发语言·kotlin
帅次2 天前
Android 高级工程师面试:Kotlin 语法基础 近1年高频追问 22 题
android·面试·kotlin·扩展函数·空安全