Tailwind CSSTailwind CSS
Home
  • Tailwind CSS 书籍目录
  • Vue 3 开发实战指南
  • React 和 Next.js 学习
  • TypeScript
  • React开发框架书籍大纲
  • Shadcn学习大纲
  • Swift 编程语言:从入门到进阶
  • SwiftUI 学习指南
  • 函数式编程大纲
  • Swift 异步编程语言
  • Swift 协议化编程
  • SwiftUI MVVM 开发模式
  • SwiftUI 图表开发书籍
  • SwiftData
  • ArkTS编程语言:从入门到精通
  • 仓颉编程语言:从入门到精通
  • 鸿蒙手机客户端开发实战
  • WPF书籍
  • C#开发书籍
learn
  • Java编程语言
  • Kotlin 编程入门与实战
  • /python/outline.html
  • AI Agent
  • MCP (Model Context Protocol) 应用指南
  • 深度学习
  • 深度学习
  • 强化学习: 理论与实践
  • 扩散模型书籍
  • Agentic AI for Everyone
langchain
Home
  • Tailwind CSS 书籍目录
  • Vue 3 开发实战指南
  • React 和 Next.js 学习
  • TypeScript
  • React开发框架书籍大纲
  • Shadcn学习大纲
  • Swift 编程语言:从入门到进阶
  • SwiftUI 学习指南
  • 函数式编程大纲
  • Swift 异步编程语言
  • Swift 协议化编程
  • SwiftUI MVVM 开发模式
  • SwiftUI 图表开发书籍
  • SwiftData
  • ArkTS编程语言:从入门到精通
  • 仓颉编程语言:从入门到精通
  • 鸿蒙手机客户端开发实战
  • WPF书籍
  • C#开发书籍
learn
  • Java编程语言
  • Kotlin 编程入门与实战
  • /python/outline.html
  • AI Agent
  • MCP (Model Context Protocol) 应用指南
  • 深度学习
  • 深度学习
  • 强化学习: 理论与实践
  • 扩散模型书籍
  • Agentic AI for Everyone
langchain
  • 条件表达式:if 和 when

条件表达式:if 和 when

Kotlin 提供了两种强大的条件表达式:if 和 when。它们不仅可以作为语句使用,还可以作为表达式返回结果。本章将详细介绍它们的语法和用法。

1. if 表达式

在 Kotlin 中,if 不仅可以作为条件语句,还可以作为表达式返回结果。

基本用法

val max = if (a > b) a else b
  • 如果 a > b,返回 a,否则返回 b。
  • 不需要三元运算符(?:),因为 if 已经可以替代。

多分支 if-else

val result = if (score >= 90) {
    "优秀"
} else if (score >= 60) {
    "及格"
} else {
    "不及格"
}
  • 每个分支的最后一行是返回值。

2. when 表达式

when 是 Kotlin 中更强大的条件表达式,类似于其他语言中的 switch,但功能更灵活。

基本用法

when (x) {
    1 -> println("x 是 1")
    2 -> println("x 是 2")
    else -> println("x 不是 1 或 2")
}
  • 匹配 x 的值,执行对应的分支。
  • else 分支是必须的(除非编译器能证明所有情况已覆盖)。

多条件匹配

when (x) {
    0, 1 -> println("x 是 0 或 1")
    in 2..10 -> println("x 在 2 到 10 之间")
    is String -> println("x 是字符串")
    else -> println("其他情况")
}
  • 支持逗号分隔的多个值、范围检查(in)和类型检查(is)。

作为表达式使用

val description = when (x) {
    1 -> "一"
    2 -> "二"
    else -> "未知"
}
  • when 可以直接返回结果。

无参形式

when {
    x.isOdd() -> println("x 是奇数")
    x.isEven() -> println("x 是偶数")
    else -> println("x 未知")
}
  • 无参 when 可以替代复杂的 if-else 链。

3. if 与 when 的选择

  • 简单二选一:优先用 if。
  • 多分支或复杂条件:优先用 when。
  • 需要返回值时:两者均可,但 when 通常更清晰。

示例代码

fun main() {
    val score = 85
    val grade = when (score) {
        in 90..100 -> "A"
        in 80..89 -> "B"
        in 60..79 -> "C"
        else -> "D"
    }
    println("成绩等级:$grade") // 输出:B
}

总结

  • if 适合简单条件判断,且能替代三元运算符。
  • when 功能更强大,支持多分支、范围检查和类型检查。
  • 两者均可作为表达式返回结果。
Last Updated:: 5/21/25, 7:58 PM