逻辑运算符与短路求值
使用 &&、||、! 组合条件,并理解短路求值。
逻辑运算符与短路求值 是 CoddyKit 上的免费 Swift Academy 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Swift Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Swift Academy 课程共包含 4 节课。
逻辑运算符
逻辑运算符用于组合 Bool 值:AND &&、OR || 和 NOT !。它们对于构建条件至关重要。
let isWeekend = true
let isSunny = false
print(isWeekend && isSunny)
print(isWeekend || isSunny)
print(!isSunny)逻辑 NOT
! 运算符会翻转布尔值:true 变为 false,反之亦然。
let loggedIn = false
if !loggedIn {
print("Please log in")
}逻辑 AND
只有当两个操作数都为 true 时,&& 才为 true。当所有条件都必须成立时,请使用它。
let hasTicket = true
let hasID = true
let canEnter = hasTicket && hasID
print("Can enter:", canEnter)逻辑 OR
当至少一个操作数为 true 时,|| 就为 true。当任意一个条件成立就足够时,请使用它。
let isAdmin = false
let isOwner = true
let canEdit = isAdmin || isOwner
print("Can edit:", canEdit)组合 AND 和 OR
您可以混合使用这些运算符。&& 的优先级高于 ||,但使用括号可以让复杂条件更易读。
let age = 20
let hasGuardian = false
let allowed = (age >= 18) || hasGuardian
print("Allowed:", allowed)AND 的短路求值
Swift 使用短路求值:在 a && b 中,如果 a 为 false,Swift 就不会计算 b,因为结果已经确定为 false。
func sideEffect() -> Bool {
print("sideEffect ran")
return true
}
let result = false && sideEffect()
print("Result:", result)OR 的短路求值
类似地,在 a || b 中,如果 a 为 true,Swift 就会跳过 b。只有在需要时才会检查右侧。
func sideEffect() -> Bool {
print("sideEffect ran")
return false
}
let result = true || sideEffect()
print("Result:", result)短路求值为何重要
短路求值允许您先放置一个成本低或 safe 的防护条件,以保护后续成本高或有风险的检查。操作数的顺序很重要。
let numbers = [10, 20, 30]
let index = 5
if index < numbers.count && numbers[index] > 0 {
print("Safe access")
} else {
print("Index out of bounds guarded")
}从左到右的求值顺序
操作数会从左到右求值。将决定结果的条件放在前面,可以避免运行不必要或不安全的代码。
func check(_ label: String, _ value: Bool) -> Bool {
print("checking", label)
return value
}
let r = check("A", false) && check("B", true)
print("Final:", r)构建复杂条件
实际程序会组合许多检查。请使用括号进行分组,以表达 exact 逻辑并保持可读性。
let temp = 25
let humidity = 40
let comfortable = (temp >= 18 && temp <= 26) && (humidity < 60)
print("Comfortable:", comfortable)否定复合条件
将条件包裹在 !(...) 中会反转整个条件。根据德摩根定律,!(a && b) 等于 !a || !b。
let a = true
let b = false
print(!(a && b))
print(!a || !b)快速检查
思考短路求值的过程。
回顾:逻辑运算符和短路求值
您已经学习了 &&、|| 和 !,了解了 && 会在遇到第一个 false 时停止,而 || 会在遇到第一个 true 时停止,还了解了这种从左到右的短路求值如何让前置防护条件保护后续检查。
let list = [1, 2, 3]
let i = 10
let safe = i < list.count && list[i] == 2
print("Safe and matched:", safe)常见问题解答
「逻辑运算符与短路求值」课时是免费的吗?
是的 — 「逻辑运算符与短路求值」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Swift Academy 课程的其余内容,请升级到 CoddyKit PRO。 Swift Academy 课程共包含 4 节课。
「逻辑运算符与短路求值」这节课中我会学到什么?
使用 &&、||、! 组合条件,并理解短路求值。 你通过在浏览器中直接运行的动手代码来练习 Swift Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Swift Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Swift Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。
「逻辑运算符与短路求值」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Swift Academy 课中编写并运行代码吗?
能。每节 Swift Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 算术与复合赋值运算符
- 比较运算符与身份运算符
- 逻辑运算符与短路求值
- 位运算符与溢出运算符