Swift 条件语句(深入浅出)

Swift 条件语句:让程序学会“判断”

在编程的世界里,程序不是一成不变的流水线,而是有“思考能力”的智能体。它能根据不同的输入、状态或环境,做出不同的选择。这种“思考”的能力,正是由 Swift 条件语句 实现的。没有条件语句,程序就像一辆没有方向盘的汽车,只能沿着固定路线前进,无法应对复杂的路况。

对于初学者来说,理解条件语句是迈向真正编程思维的第一步。它不仅是语法,更是一种逻辑思维的训练。今天,我们就来深入浅出地讲解 Swift 中的条件语句,用真实场景和代码示例,带你掌握它的核心用法。


基本语法:if 语句的“判断逻辑”

最基础的条件语句是 if。它的作用是:当某个条件为真(true)时,执行对应代码块;否则跳过。

let score = 85

if score >= 60 {
    print("恭喜你,及格了!")
}

💡 注释:这里 score >= 60 是一个布尔表达式,判断分数是否大于等于 60。如果为真,就会执行花括号内的代码。否则,整个 if 块被忽略。

想象一下,你在考试后查成绩,系统会自动判断:“如果分数 >= 60,就打印‘及格了’”。这正是 if 的逻辑——做决定。


if-else:二选一的“决策树”

现实中的选择往往不止一种。比如,考试成绩不是及格就是不及格。这时就需要 if-else 结构。

let score = 45

if score >= 60 {
    print("成绩合格,可以继续学习。")
} else {
    print("成绩不合格,需要补考。")
}

💡 注释:if 后跟条件,若为真执行第一段代码;若为假,则执行 else 后的代码。这就像一个开关:要么开,要么关,必选其一。

你可以把 if-else 想象成一个自动售货机的判断逻辑:

  • 如果投币 >= 价格 → 出货
  • 否则 → 提示“金额不足”

if-else if-else:多分支的“选择迷宫”

当选择不止两个时,就需要 if-else if-else 链。它像一个层层递进的判断流程。

let grade = 78

if grade >= 90 {
    print("A 等级:优秀")
} else if grade >= 80 {
    print("B 等级:良好")
} else if grade >= 70 {
    print("C 等级:中等")
} else if grade >= 60 {
    print("D 等级:及格")
} else {
    print("F 等级:不及格")
}

💡 注释:条件从上到下依次判断,一旦某个条件为真,就执行对应代码块,并跳出整个判断链。后面的 else if 不再检查。这就像打开一扇门,只走一条路。

✅ 小技巧:顺序很重要!一定要按从高到低的条件排列,否则可能“提前命中”错误分支。


复合条件:用逻辑运算符连接判断

现实中的判断往往涉及多个条件。比如,要进入电影院,必须满足:年龄 ≥ 12 且 有票。

Swift 提供了三种逻辑运算符:

  • &&:逻辑与(and),两个条件都为真才为真
  • ||:逻辑或(or),只要一个为真就为真
  • !:逻辑非(not),取反

与运算:&&,两个条件必须都满足

let age = 15
let hasTicket = true

if age >= 12 && hasTicket {
    print("欢迎观影!")
} else {
    print("请检查年龄或购票信息。")
}

💡 注释:age >= 12 && hasTicket 要求两个条件同时成立。如果年龄不足 12,或没买票,都进不去。


或运算:||,满足任一即可

let isStudent = true
let isSenior = false

if isStudent || isSenior {
    print("您享有优惠票价。")
} else {
    print("普通票价。")
}

💡 注释:只要一个是 true,整个表达式就为真。学生或老年人,都可以享受优惠。


非运算:!,取反逻辑

let isLocked = false

if !isLocked {
    print("门未上锁,可以进入。")
} else {
    print("门已上锁,请先解锁。")
}

💡 注释:!isLocked 等价于 isLocked == false。用 ! 可以让代码更简洁,避免写 == false


布尔值与条件表达式

在 Swift 中,条件语句的判断条件必须是布尔类型(Bool),即 truefalse。但你也可以将表达式结果直接作为条件。

let isRaining = true
let hasUmbrella = false

// 直接使用布尔变量作为条件
if isRaining {
    print("记得带伞。")
}

// 使用表达式
if hasUmbrella || !isRaining {
    print("可以出门。")
}

💡 注释:你不需要写 if isRaining == true,直接写 if isRaining 就够了。Swift 会自动将布尔值用于判断。


实战案例:用户登录系统

我们来做一个完整的例子,模拟用户登录流程,涵盖多种条件判断。

let username = "admin"
let password = "123456"
let isLogin = false

// 检查登录状态
if isLogin {
    print("您已登录,欢迎回来!")
} else {
    // 检查用户名和密码
    if username == "admin" && password == "123456" {
        print("登录成功!")
        // 模拟设置登录状态
        isLogin = true
    } else {
        print("用户名或密码错误。")
    }
}

💡 注释:这是一个典型的嵌套条件结构。外层判断是否已登录,若未登录,则进入内层判断用户名和密码。实际项目中,这种结构非常常见。


常见错误与最佳实践

在学习 Swift 条件语句 的过程中,初学者常犯几个错误:

  1. 忘记写花括号
    虽然 Swift 允许单行代码不加花括号,但强烈建议始终使用 {},避免逻辑错误。

    ❌ 错误写法:

    if score >= 60
        print("及格")
    

    ✅ 推荐写法:

    if score >= 60 {
        print("及格")
    }
    
  2. 混淆 ===
    = 是赋值,== 是比较。用 = 会导致编译错误或逻辑错误。

    ❌ 错误:

    if score = 60 { ... } // 会报错
    

    ✅ 正确:

    if score == 60 { ... }
    
  3. 条件顺序错误
    多个 else if 的顺序必须合理。例如,先判断 >= 90,再判断 >= 80,否则可能“提前命中”。


总结:让程序真正“聪明”起来

Swift 条件语句 不只是语法,它是程序“思考”的起点。通过 ifif-elseif-else if-else,你可以构建复杂的逻辑流程;通过逻辑运算符,可以组合多个判断条件。

掌握这些,你就不再只是“写代码”,而是在“设计决策”。无论是用户登录、成绩判断,还是游戏状态控制,条件语句都是核心工具。

记住:

  • 条件必须是布尔值
  • 逻辑清晰比代码短更重要
  • 善用注释,让别人(包括未来的你)看得懂

当你能熟练使用 Swift 条件语句 构建判断流程时,你就真正迈入了编程的“逻辑世界”。下一步,就是学会循环和函数,让程序更强大、更智能。

别急,编程是一步一步走出来的。今天你学会的,就是明天你构建复杂应用的基石。