Kotlin第一阶段学习内容详情

Kotlin 第一阶段学习内容详情:基础语法

本阶段目标是熟悉 Kotlin 最基础、最常用的语法。学完后,你应该能独立写出简单的命令行程序,比如成绩判断、循环统计、猜数字小游戏。

建议用时:3-5 天。

阶段目标

  • 能区分并正确使用 valvar
  • 掌握 Kotlin 常见基本类型。
  • 能使用字符串模板拼接输出内容。
  • 能使用 ifwhen 完成条件判断。
  • 能使用 forwhile、区间完成循环。
  • 能写出 3 个以上小程序巩固基础语法。

学习前准备

请先确认你能运行下面的代码:

fun main() {
    println("Hello, Kotlin!")
}

如果这段代码能正常输出 Hello, Kotlin!,就可以开始第一阶段。

第 1 天:变量与基本类型

1. 变量声明

Kotlin 使用 valvar 声明变量。

关键字 含义 是否可以重新赋值 使用建议
val 只读变量 优先使用
var 可变变量 只有确实需要修改时使用

示例:

fun main() {
    val name = "Alice"
    var age = 18

    age = 19

    println(name)
    println(age)
}

下面这样会报错,因为 val 声明后不能重新赋值:

fun main() {
    val name = "Alice"
    name = "Bob" // 错误:val 不能重新赋值
}

2. 类型推断

Kotlin 可以根据赋值自动推断变量类型。

val age = 18       // Int
val price = 9.99   // Double
val name = "Tom"   // String
val isVip = true   // Boolean

也可以显式写出类型:

val age: Int = 18
val price: Double = 9.99
val name: String = "Tom"
val isVip: Boolean = true

初学时建议多写几次显式类型,熟悉后再依赖类型推断。

3. 常见基本类型

类型 说明 示例
Int 整数 18
Long 长整数 10000000000L
Double 小数 3.14
Float 单精度小数 3.14F
Boolean 布尔值 truefalse
Char 单个字符 'A'
String 字符串 "Kotlin"

示例:

fun main() {
    val score: Int = 95
    val distance: Long = 10000000000L
    val price: Double = 19.99
    val passed: Boolean = true
    val level: Char = 'A'
    val language: String = "Kotlin"

    println(score)
    println(distance)
    println(price)
    println(passed)
    println(level)
    println(language)
}

第 1 天练习

  1. 声明姓名、年龄、身高、是否学生,并打印出来。
  2. 使用 val 声明一个城市名,尝试重新赋值,观察报错。
  3. 使用 var 声明库存数量,模拟库存减少。

参考答案:

fun main() {
    val name = "小明"
    var age = 20
    val height = 1.75
    val isStudent = true

    println("姓名:$name")
    println("年龄:$age")
    println("身高:$height")
    println("是否学生:$isStudent")

    var stock = 10
    stock = stock - 1
    println("剩余库存:$stock")
}

第 2 天:字符串与运算符

1. 字符串模板

Kotlin 推荐使用字符串模板,而不是用 + 拼接字符串。

fun main() {
    val name = "Alice"
    val age = 20

    println("姓名:$name,年龄:$age")
}

如果模板中是表达式,需要使用 ${}

fun main() {
    val price = 20
    val count = 3

    println("总价:${price * count}")
}

2. 多行字符串

使用三引号 """ 可以声明多行字符串。

fun main() {
    val message = """
        学习计划:
        1. 学习变量
        2. 学习条件判断
        3. 学习循环
    """.trimIndent()

    println(message)
}

3. 算术运算符

运算符 含义 示例
+ 加法 a + b
- 减法 a - b
* 乘法 a * b
/ 除法 a / b
% 取余 a % b

示例:

fun main() {
    val a = 10
    val b = 3

    println(a + b)
    println(a - b)
    println(a * b)
    println(a / b)
    println(a % b)
}

注意:两个整数相除,结果仍然是整数。

fun main() {
    println(10 / 3)      // 输出 3
    println(10.0 / 3)    // 输出 3.3333333333333335
}

4. 比较运算符

运算符 含义
> 大于
< 小于
>= 大于等于
<= 小于等于
== 值相等
!= 值不相等

示例:

fun main() {
    val score = 85

    println(score >= 60)
    println(score == 100)
    println(score != 0)
}

5. 逻辑运算符

运算符 含义
&& 并且
`
! 取反

示例:

fun main() {
    val age = 20
    val hasTicket = true

    val canEnter = age >= 18 && hasTicket
    println(canEnter)
}

第 2 天练习

  1. 定义商品单价和购买数量,计算总价。
  2. 判断一个数字是否为偶数。
  3. 判断一个用户是否可以进入影院:年龄大于等于 18,并且有票。

参考答案:

fun main() {
    val price = 30
    val count = 4
    val total = price * count
    println("总价:$total")

    val number = 12
    println("是否为偶数:${number % 2 == 0}")

    val age = 19
    val hasTicket = true
    val canEnter = age >= 18 && hasTicket
    println("是否可以进入影院:$canEnter")
}

第 3 天:条件判断

1. if 判断

基础写法:

fun main() {
    val score = 80

    if (score >= 60) {
        println("及格")
    } else {
        println("不及格")
    }
}

多个条件:

fun main() {
    val score = 85

    if (score >= 90) {
        println("优秀")
    } else if (score >= 80) {
        println("良好")
    } else if (score >= 60) {
        println("及格")
    } else {
        println("不及格")
    }
}

2. if 作为表达式

Kotlin 中的 if 可以返回结果。

fun main() {
    val score = 75
    val result = if (score >= 60) "及格" else "不及格"

    println(result)
}

3. when 判断

when 类似 Java 或 C 语言中的 switch,但更强大。

fun main() {
    val level = "A"

    when (level) {
        "A" -> println("优秀")
        "B" -> println("良好")
        "C" -> println("及格")
        else -> println("未知等级")
    }
}

4. when 作为表达式

fun main() {
    val level = "B"

    val description = when (level) {
        "A" -> "优秀"
        "B" -> "良好"
        "C" -> "及格"
        else -> "未知等级"
    }

    println(description)
}

5. when 判断范围

fun main() {
    val score = 88

    val result = when (score) {
        in 90..100 -> "优秀"
        in 80..89 -> "良好"
        in 60..79 -> "及格"
        in 0..59 -> "不及格"
        else -> "分数无效"
    }

    println(result)
}

第 3 天练习

  1. 输入一个年龄,判断是儿童、青少年、成年人还是老年人。
  2. 输入一个月份,判断属于哪个季节。
  3. 输入一个成绩,输出等级:优秀、良好、及格、不及格。

参考答案:

fun main() {
    val age = 20

    val ageGroup = when (age) {
        in 0..12 -> "儿童"
        in 13..17 -> "青少年"
        in 18..59 -> "成年人"
        in 60..120 -> "老年人"
        else -> "年龄无效"
    }

    println(ageGroup)

    val month = 4

    val season = when (month) {
        in 3..5 -> "春季"
        in 6..8 -> "夏季"
        in 9..11 -> "秋季"
        12, 1, 2 -> "冬季"
        else -> "月份无效"
    }

    println(season)
}

第 4 天:循环与区间

1. 区间

Kotlin 中的区间很常用。

fun main() {
    println(1..5)
}

常见区间写法:

写法 含义 结果
1..5 从 1 到 5,包含 5 1、2、3、4、5
1 until 5 从 1 到 5,不包含 5 1、2、3、4
5 downTo 1 从 5 到 1 5、4、3、2、1
1..10 step 2 每次增加 2 1、3、5、7、9

2. for 循环

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

倒序循环:

fun main() {
    for (i in 5 downTo 1) {
        println(i)
    }
}

步长循环:

fun main() {
    for (i in 1..10 step 2) {
        println(i)
    }
}

遍历字符串:

fun main() {
    val text = "Kotlin"

    for (char in text) {
        println(char)
    }
}

3. while 循环

先判断条件,再执行循环体。

fun main() {
    var count = 1

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

4. do-while 循环

先执行一次循环体,再判断条件。

fun main() {
    var count = 1

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

5. breakcontinue

break 用于结束整个循环。

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

continue 用于跳过本次循环,继续下一次循环。

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

第 4 天练习

  1. 输出 1-100 的所有数字。
  2. 计算 1-100 的和。
  3. 输出 1-100 的所有偶数。
  4. 输出字符串 "Kotlin" 中的每一个字符。
  5. 找出 1-100 中第一个能被 7 整除的数字。

参考答案:

fun main() {
    var sum = 0

    for (i in 1..100) {
        sum += i
    }

    println("1-100 的和:$sum")

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

    for (char in "Kotlin") {
        println(char)
    }

    for (i in 1..100) {
        if (i % 7 == 0) {
            println("第一个能被 7 整除的数字:$i")
            break
        }
    }
}

第 5 天:综合练习

这一天不用学太多新语法,重点是把前 4 天内容串起来。

综合练习 1:成绩等级判断

要求:

  • 定义一个成绩变量 score
  • 如果成绩为 90-100,输出「优秀」。
  • 如果成绩为 80-89,输出「良好」。
  • 如果成绩为 60-79,输出「及格」。
  • 如果成绩为 0-59,输出「不及格」。
  • 其他情况输出「成绩无效」。

参考答案:

fun main() {
    val score = 86

    val result = when (score) {
        in 90..100 -> "优秀"
        in 80..89 -> "良好"
        in 60..79 -> "及格"
        in 0..59 -> "不及格"
        else -> "成绩无效"
    }

    println("成绩:$score,等级:$result")
}

综合练习 2:奇偶统计

要求:

  • 遍历 1-100。
  • 统计奇数个数。
  • 统计偶数个数。
  • 分别输出结果。

参考答案:

fun main() {
    var oddCount = 0
    var evenCount = 0

    for (i in 1..100) {
        if (i % 2 == 0) {
            evenCount++
        } else {
            oddCount++
        }
    }

    println("奇数个数:$oddCount")
    println("偶数个数:$evenCount")
}

综合练习 3:猜数字小游戏

要求:

  • 设定一个答案数字。
  • 设定一个用户猜测数字。
  • 如果猜大了,输出「猜大了」。
  • 如果猜小了,输出「猜小了」。
  • 如果猜对了,输出「猜对了」。

基础版参考答案:

fun main() {
    val answer = 42
    val guess = 35

    if (guess > answer) {
        println("猜大了")
    } else if (guess < answer) {
        println("猜小了")
    } else {
        println("猜对了")
    }
}

循环版参考答案:

fun main() {
    val answer = 42
    val guesses = listOf(20, 60, 42)

    for (guess in guesses) {
        println("本次猜测:$guess")

        if (guess > answer) {
            println("猜大了")
        } else if (guess < answer) {
            println("猜小了")
        } else {
            println("猜对了")
            break
        }
    }
}

这里用到了 listOf(),它属于集合内容。你现在只需要知道它可以临时保存一组数字,后面会系统学习。

本阶段必须掌握的语法清单

完成第一阶段后,请逐项检查。

常见错误

1. 把 val 当成可变变量

错误写法:

val count = 1
count = 2

正确写法:

var count = 1
count = 2

2. 字符串模板表达式忘记加 {}

错误写法:

val price = 10
val count = 2
println("总价:$price * count")

正确写法:

val price = 10
val count = 2
println("总价:${price * count}")

3. 混淆 ===

= 是赋值,== 是判断两个值是否相等。

val age = 18
println(age == 18)

4. 区间边界记错

for (i in 1..5) {
    println(i) // 包含 5
}

for (i in 1 until 5) {
    println(i) // 不包含 5
}

阶段复盘问题

学完后,用自己的话回答下面的问题:

  1. valvar 有什么区别?
  2. Kotlin 为什么可以不写变量类型?
  3. $name${name.length} 有什么区别?
  4. if 作为语句和作为表达式有什么区别?
  5. when 比多个 else if 好在哪里?
  6. 1..101 until 10 有什么区别?
  7. breakcontinue 分别会影响循环的哪一部分?

下一阶段预告

第二阶段会学习函数。你会把第一阶段写在 main 函数里的代码拆出来,封装成可以反复调用的小功能,比如:

  • fun getGrade(score: Int): String
  • fun isEven(number: Int): Boolean
  • fun sumFromOneTo(max: Int): Int

这一步会让代码从「能跑」变成「更清晰、更好复用」。

posted @ 2026-06-27 11:20  呢哇哦比较  阅读(13)  评论(0)    收藏  举报