始终看目标,并不遥远。加油!

算数运算符

在Swift中可以使用算数运算符。

1
2
3
4
5
6
7
8
9
let firstnum = 12
let lastnum = 2
let othnum = 13

let finnum = firstnum + lastnum //计算和 结果为14
let fin2num = firstnum - lastnum //计算差 结果为10
let fin3num = firstnum * lastnum //计算乘积 结果为24
let fin4num = firstnum / lastnum //计算除 结果为6
let fin5num = othnum % lastnum //计算余数 结果为1

当然,也可以多次运算,例如:

1
let result = 1 + 1 + 1	//结果为3

要注意输出的数字为整数(Int)还是浮点数(Double),例如:

1
2
let num = 5 * 1	//整数
let num2 = 5 * 1.0 //浮点数

运算符重载

在Swift中运算符的作用可以取决于你给予的值,例如:

1
let num = 12 + 12

你也可以连接字符串,例如:

1
2
let firstName = "Hong"
let fullName = firstName + "Zhang"

你可以连接数组,例如:

1
2
3
let peo1 = ["A","B","C"]
let peo2 = ["D","E","F"]
let sumpeo = peo1 + peo2

输出值为["A","B","C","D","E","F"]

注意,在Swift中不能多种类型混用。

一些反面例子

let result = false + false //不能对布尔值使用加法

let result = [“North”, “South”] * 2 //不能将字符串数组襄城

复合赋值运算符

在Swift中,可以针对相同变量使用+=这种运算符进行复合赋值运算,例如:

1
2
var num = 100
num -=10

num输出值为90,成功的缩写了num = num - 10,这个在很多其他语言几乎也是如此。

你也可以处理字符串,例如:

1
2
var txt = "It is sunny "
txt += "today."

txt输出为It is sunny today.

比较运算符

在Swift中有很多用于比较的运算符,例如:

1
2
3
4
5
6
7
8
let firnum = 10
let lasnum = 9

firnum == lasnum //false
firnum != lasnum //true

firnum > lasnum //true
firnum <= lasnum //false

因为字符串有着字母顺序,所以我们甚至可以来比较字符串大小,例如:

1
"Taylor" <= "Swift"

判断语句

我们可以通过比较运算符来添加ifelse ifelse的条件语句判断,例如:

1
2
3
4
5
6
7
8
9
10
let firstCard = 11
let secondCard = 10

if firstCard + secondCard == 2 {
print("Aces – lucky!")
} else if firstCard + secondCard == 21 {
print("Blackjack!")
} else {
print("Regular cards")
}

注意:整数(Int)与浮点数(Double)是不能比较的。

“且”和“或”

在数学中我们知道“且”和“或”,同样,在Swift中,也是有“且”和“或”的,分别对应的符号是&&||

且:两项都为true则为true

或:两项至少又一个为true为true

例如判断两个人的年龄是否都超过固定值:

1
2
3
4
5
6
let age1 = 12
let age2 = 21

if age1 > 18 && age2 > 18 {
print("Both are over 18")
}

判断两个人的年龄是否至少有一个超过固定值:

1
2
3
if age1 > 18 || age2 > 18 {
print("One of them is over 18")
}

三次运算

在Swift中我们甚至可以一口气进行三次运算。例如:

1
2
3
let firstCard = 11
let secondCard = 10
print(firstCard == secondCard ? "Cards are the same" : "Cards are different")

?代表了true,:代表了false。

所以,上方的代码可以用二次运算的方式进行书写,例如:

1
2
3
4
5
if firstCard == secondCard {
print("Cards are the same")
} else {
print("Cards are different")
}

切换语句(多条件处理)

在有非常多条件的时候我们可以使用switch来进行处理,只需写一个条件就可以处理很多情况。使用default可以应对你没有列出的可能性。例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
let phone = "xiaomi"

switch phone {
case "iphone":
print("iphone is good")
case "oneplus":
print("oneplus is good")
case "oppo":
print("oppo is good")
case "huawei":
print("huawei is good")
case "xiaomi":
print("xiaomi is good")
default:
print("your phone is good")
}

输出值为xiaomi is good,正常情况下switch只会执行这里面的一种情况。如果想要在他处理完之后仍然继续向下处理,那么需要在case最后添加fallthrough,例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
let phone = "xiaomi"

switch phone {
case "iphone":
print("iphone is good")
case "oneplus":
print("oneplus is good")
case "oppo":
print("oppo is good")
case "huawei":
print("huawei is good")
case "xiaomi":
print("xiaomi is good")
fallthrough
default:
print("your phone is good")
}

输出值为

xiaomi is good your phone is good

注意:必须提供default的值

范围计算

Swift有两种范围计算的方法,一种是...一种是..<。例如:

1...5代表了1、2、3、4、5;

1..<5代表了1、2、3、4

例如:

1
2
3
4
5
6
7
8
9
10
let score = 85

switch score {
case 0..<50:
print("You failed badly.")
case 50..<85:
print("You did OK.")
default:
print("You did great!")
}

总结

  • Swift具有用于进行算术和比较的运算符;他们大多像你已经知道的那样工作。
  • 算术运算符有多种变体,可以在适当的位置修改其变量:+=,-=等等。
  • 你可以使用if,else和else if根据条件的结果运行代码。
  • Swift具有三元运算符,该运算符将校验与正确和错误的代码块结合在一起。尽管你可能会在其他代码中看到它,但我不建议你自己使用它。
  • 如果你有多个条件使用相同的值,则通常更容易使用switch。
  • 你可以使用进行范围调整..<,…具体取决于应排除还是包括最后一个数字。

参考资料

查看下一天的SwiftUI学习笔记

关于100days英文课程