02.运算符和流程控制
目录介绍
- 2.1 运算符
- 2.1.1 赋值运算符
- 2.1.2 算术运算符
- 2.1.3 逻辑运算符
- 2.1.4 比较运算符
- 2.1.5 条件运算符
- 2.2 特殊运算符
- 2.2.1 空合并运算符
- 2.2.2 区间运算符
- 2.3 循环结构
- 2.3.1 for-in循环结构
- 2.3.2 while循环结构
- 2.3.3 repeat-while条件循环
- 2.4 条件选择与多分支选择
- 2.4.1 if与if-else
- 2.4.2 switch-case多分支
- 2.5 流程跳转语句
- 2.5.1 continue跳出
- 2.5.2 break跳出
- 2.5.3 fallthrough语句
- 2.5.4 return返回
- 2.5.5 throw抛出异常
- 2.5.6 guard语句
2.1 运算符
2.1.1 赋值运算符
赋值运算符应该是在编程中出现频率最高的运算符之一,在对任何量值进行赋值时,都需要 使用到赋值运算符“=”。
需要注意,“=”在Swift 语言中是赋值运算符,并不是相等运算符,对 于一些编程初学者,很容易将相等运算符“==”与赋值运算符“=”混淆使用。
2.1.2 算术运算符
算术运算符用于进行一些基本的数学运算,例如加、减、乘、除等。
需要注意的是,Swift 语言从2.2版本之后删除了自增运算符“++”与自减运算符“--”,目前版本的Swift语言中不可 以再使用这两个运算符。
var A = 10
var B = 20
print("A + B 结果为:\(A + B)")
print("A - B 结果为:\(A - B)")
print("A * B 结果为:\(A * B)")
print("B / A 结果为:\(B / A)")
A += 1 // 类似 A++
print("A += 1 后 A 的值为 \(A)")
B -= 1 // 类似 B--
print("B -= 1 后 B 的值为 \(B)")
2.1.3 逻辑运算符
逻辑运算符进行逻辑运算操作。可以简单理解 为,逻辑运算即是生活中所定义的真与假。系统定义的基本逻辑运算符会返回一个Bool类型的逻 辑值,因此,基本逻辑运算符组成的逻辑表达式在 if 判断语句中会经常用到。
Swift 中支持的基本逻辑运算符有逻辑与运算符“&&”、逻辑或运算符 “Il” 、 逻辑非运算符 “!”三种。逻辑运算只在逻辑值 (Bool 类型值)之间进行,与、或、非三种运算中前两者为二元 运算符,需要有两个Bool 类型的操作数。非运算符为一元运算符,需要一个Bool 类型的操作数,
它们有如下特点:
- ●与:两个操作数都为真,结果才为真,有一个操作数为假则结果为假。
- ●或:两个操作数有一个为真则结果为真,两个操作数都为假则结果为假。
- ●非:操作数为真则结果为假,操作数为假则结果为真。
2.1.4 比较运算符
Swift 中的比较运算符用于两个操作数之间的比较运算,其会返回一个Bool 类型的逻辑值。
基本的比较运算符有等于比较运算符“==”、小于比较运算符“<”、大于比较运算符“>”、不等 于比较运算符“!=”、小于等于比较运算符“<=”以及大于等于比较运算符“>=”。
2.1.5 条件运算符
条件运算符(三目运算符)是一种三元运算符,其可以简便实现代码中的条件选择逻辑。
2.2 特殊运算符
2.2.1 空合并运算符
可选值类型(Optional) 是 Swift 语言的一个独特之处,空合并运算符就是针对可选类型而设计的运算符。
空合并运算符(nil coalescing operator)用于提供一个默认值,以防止可选值为nil。空合并运算符使用两个连续的问号(??)表示。
let optionalName: String? = nil
let username = optionalName ?? "Guest"
print(username) // 输出: "Guest"
在上面的示例中,optionalName是一个可选字符串,其值为nil。使用空合并运算符,我们为username提供了一个默认值"Guest",以防optionalName为nil。
如果optionalName的值不为nil,那么username将取optionalName的值;如果optionalName为nil,那么username将取默认值"Guest"。
2.2.2 区间运算符
2.3 循环结构
2.3.1 for-in循环结构
Swift 语言中的for-in 结构则强大很多,既可以进行无序的循环遍历,也可以进行有序的循环遍历。
2.3.2 while循环结构
2.3.3 repeat-while条件循环
2.4 条件选择与多分支选择
2.4.1 if与if-else
2.4.2 switch-case多分支
2.5 流程跳转语句
2.5.1 continue跳出
2.5.2 break跳出
2.5.3 fallthrough语句
2.5.4 return返回
2.5.5 throw抛出异常
2.5.6 guard语句
guard 是一种用于提前退出函数、方法或循环的语句。它用于检查条件是否为真,如果条件为假,则执行 else 分支中的代码来执行提前退出操作。
guard 语句的一般语法如下:
guard condition else {
// 条件为假时执行的代码
// 执行提前退出操作,例如返回、抛出异常等
}
以下是一个示例,展示了如何使用 guard 语句来验证输入参数是否满足要求:
func processInput(_ input: Int) {
guard input > 0 else {
print("输入参数必须大于0")
return // 提前退出函数
}
// 在这里继续处理输入参数
print("输入参数有效,继续处理...")
}
使用 guard 语句来检查输入参数 input 是否大于 0。如果条件为假,则打印一条错误消息并提前退出函数。如果条件为真,则继续执行后续的代码。
使用 guard 语句可以提高代码的可读性和可维护性,避免了深层嵌套的条件语句。