100 Days of Swift - Day 03: Swif
2022-12-09 本文已影响0人
NieFeng1024
03 Day: Operators and Conditions
3.1 算术运算操作符
-
操作符 加减乘除 取余
-
限定在相同数据类型之间,
-
Swift 不建议在不同数据类型之间进行运算,精度会丢失,不安全
let firstScore = 12 let secondScore = 4 let total = firstScore + secondScore let difference = firstScore - secondScore let product = firstScore * secondScore let divided = firstScore / secondScore let remainder = 13 % secondScore
3.2 算术操作符重载
- Swift 允许运算符重载,也允许自定义操作符
- 例如 + 加法运算
- 可用于数字相加
- 可用于字符串相加
- 可用于字符串数组相加
- 举个🌰
// 整数相加 var score = 95 + 5 // 字符串相加 var quote = "Rain" + "Spaniards" // 字符串数组相加 var result = ["Red", "Green"] + ["Blue"]
- 举个🌰
- ❌错误示例: 不同数据类型加法操作
// 字符串加数字 var result = "Your age is " + 26 // 字典加字符串数组 let result = ["name": "Paul"] + ["Hudson"]
- ❌错误示例: 布尔类型不允许加法操作
let result = false + false
3.3 组合赋值操作符
- Swift 组合赋值运算符
- -= 先减再等
- += 先加再等
var score = 95
score -= 5
var quote = "The rain in Spain falls mainly on the "
quote += "Spaniards"
3.4 比较运算符
1) == 等等于
2) != 不等于
3) >= 大于等于
4) <= 小于等于
- 举个🌰
let firstScore = 6
let secondScore = 4
firstScore == secondScore // false
firstScore != secondScore // true
firstScore < secondScore // false
firstScore >= secondScore // true
"Taylor" <= "Swift" // false
- Swift可以比较各种种相同类型的数据 eg: String / Enum / Int ...
3.5 条件运算符
1) if == / >= / <=
2) if else if
3) if else if else
- 应用场景: 条件运算符配合 if else 关键字 对多个条件进行判断是否执行
if firstCard + secondCard == 2 {
print("Aces – lucky!")
} else if firstCard + secondCard == 21 {
print("Blackjack!")
} else {
print("Regular cards")
}
3.6 合并运算符
1) && // 与
2) || // 或
3) if else if else
- 应用场景: 同一时刻检查多个条件是否满足
if (isOwner == true && isEditingEnabled) || isAdmin == true {
print("You can delete this post")
}
3.7 三元运算符
- let result = condationA ? B : C
- 应用场景: 一个条件返回两种结果,条件A满足则返回B,否则返回C,和条件语句if else 同理
let firstCard = 11
let secondCard = 10
print(firstCard == secondCard ? "Cards are the same" : "Cards are different")
if firstCard == secondCard {
print("Cards are the same")
} else {
print("Cards are different")
}
3.8 Switch语句
- switch { caseA caseB caseC ... default }
- default case 等同于条件语句if else if else 中最后一个else
- fallthrough 穿透当前case 继续执行下一个case
- 应用场景: 一列条件,每一条都需要执行不同逻辑,和多个条件语句 if else if 同理
switch weather {
case "rain":
print("Bring an umbrella")
case "snow":
print("Wrap up warm")
case "sunny":
print("Wear sunscreen")
fallthrough
default:
print("Enjoy your day!")
}
3.9 范围运算符
- 两个范围运算符 开区间..< 和 闭区间 ...
- 应用场景: 创建区间常量
1...5 // 1, 2, 3, 4, 5
1..<5 // 1, 2, 3, 4,
let score = 85
switch score {
case 0..<50:
print("You failed badly.")
case 50..<85:
print("You did OK.")
default:
print("You did great!")
}
let names = ["Piper", "Alex", "Suzanne", "Gloria"]
print(names[0]) // 取数组下标为0 的元素
print(names[1...3]) // 取数组下标为[1,2, 3] 的元素
3.10 小结
1. 算数运算符 ‘+= -=’ 修改变量
2. 条件语句 if、else和else if 确定运行结果
3. 三元运算符 一个条件可以不同结果
4. 多个条件使用相同类型的值,建议使用switch case
5. ..<和… 用来创建区间常量