算术运算符
现在您知道了Swift中的所有基本类型,我们可以开始使用运算符将它们放在一起。运算符是像+
和-
这样的数学符号,而Swift拥有大量的数学符号。
这是供我们使用的几个测试变量:
let firstScore = 12
let secondScore = 4
我们可以使用+
和-
进行加减运算:
let total = firstScore + secondScore
let difference = firstScore - secondScore
我们可以使用*
和/
进行乘除运算:
let product = firstScore * secondScore
let divided = firstScore / secondScore
Swift有一个特殊的运算符,用于计算除法后的余数:%
。它计算一个数字可以放入另一个数字的次数,然后将剩余的值发送回去。
例如,我们将其设置secondScore
为4,因此如果我们说13%
secondScore我们将返回1,因为4
可以被13
整除3次,其余为1:
let remainder = 13 % secondScore
运算符重载
Swift支持运算符重载,这是一种奇特的说法,即运算符的作用取决于使用它的值。例如,使用+
整数求和:
let meaningOfLife = 42
let doubleMeaning = 42 + 42
而且+
还可以连接字符串,如下所示:
let fakers = "Fakers gonna "
let action = fakers + "fake"
您甚至可以用+
来连接数组,如下所示:
let firstHalf = ["John", "Paul"]
let secondHalf = ["George", "Ringo"]
let beatles = firstHalf + secondHalf
请记住,Swift是一种类型安全的语言,这意味着它不会让您混合类型。例如,您不能在字符串中添加整数,因为它没有任何意义。
复合赋值运算符
Swift有将一个运算符与赋值结合起来的速记运算符,因此您可以就地更改变量。这些看起来像你知道现有的运算符 +
,-
,*
和/
,但他们有一个=
在结束处,因为他们分配结果返回给任何你使用的变量。
例如,如果某人在考试中获得95分,但需要罚5分,则可以这样写:
var score = 95
score -= 5
同样,您可以使用+=
:将一个字符串添加到另一个字符串:
var quote = "The rain in Spain falls mainly on the "
quote += "Spaniards"
比较运算符
Swift拥有多个执行比较的运算符,这些运算或多或少地就像您在数学中所期望的那样。
让我们从几个示例变量开始,以便我们可以使用:
let firstScore = 6
let secondScore = 4
有两个用于检查相等性的运算符:==
检查两个值是否相同,以及!=
(发音为“不等于”)检查两个值是否不相同:
firstScore == secondScore
firstScore != secondScore
有四个运算符用于比较一个值是大于,小于还是等于另一个。这些就像在数学中一样:
firstScore < secondScore
firstScore >= secondScore
由于字符串具有自然的字母顺序,因此它们每个都还适用于字符串:
"Taylor" <= "Swift"
条件语句
现在您知道了一些运算符,可以使用if
语句编写条件。给Swift一个条件,如果条件成立,它将运行您选择的代码。
为了尝试这一点,我想使用一个称为Swift的函数print()
:您使用一些文本运行它,它将被打印出来。
我们可以使用条件来检查二十一点的获胜条件:
let firstCard = 11
let secondCard = 10
if firstCard + secondCard == 21 {
print("Blackjack!")
}
如果条件为真,将打印括号- {
和}
- 内的代码 。如果需要,可以使用条件为false
时提供备用代码来运行else
:
if firstCard + secondCard == 21 {
print("Blackjack!")
} else {
print("Regular cards")
}
您还可以使用else if
以下方法将条件链接在一起:
if firstCard + secondCard == 2 {
print("Aces – lucky!")
} else if firstCard + secondCard == 21 {
print("Blackjack!")
} else {
print("Regular cards")
}
Swift有两个特殊的运算符,可让我们将条件组合在一起:它们分别是&&
(发音为“和”)和||
(发音为“或”)。
例如,我们可以检查两个人的年龄是否都超过某个特定值,例如:
let age1 = 12
let age2 = 21
if age1 > 18 && age2 > 18 {
print("Both are over 18")
}
只有两个年龄都超过18岁的时候print()
函数才会被执行。实际上,Swift甚至不会费心检查age2
的值,因为它可以看到age1
已经不满足条件。
使用||
来替代项&&
,如果其中一项通过测试,则评估为true
。例如,如果年龄超过18岁,我们可以打印一条消息:
if age1 > 18 || age2 > 18 {
print("One of them is over 18")
}
您可以在一个条件语句中多次使用
&&
和||
,但不要使用得太复杂,否则可能很难阅读!
三元运算符
Swift有一个很少使用的运算符称为三元运算符。它一次处理三个值,这就是它的名字来历:它检查第一个值中指定的条件,如果为true,则返回第二个值,但如果为false,则返回第三个值。
三元运算符是一个条件,加上一个true或false语句块,它们被一个问号和一个冒号分开,所有这些使得它很难阅读。这是一个例子:
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")
}
如果您有多个条件使用if
和else if
时,使用另一种称为switch case
。使用这种方法,您只需编写一次条件,然后列出所有可能的结果以及每个结果应该发生的情况。
要进行尝试,这是一个包含字符串的天气常量sunny
:
let weather = "sunny"
我们可以使用一个switch
块来打印四种不同的消息之一:
switch weather {
case "rain":
print("Bring an umbrella")
case "snow":
print("Wrap up warm")
case "sunny":
print("Wear sunscreen")
default:
print("Enjoy your day!")
}
最后一种情况default
是必需的,因为Swift可以确保您涵盖所有可能的情况,从而不会错过任何可能的情况。如果天气不是下雨,下雪或晒日光,default则将运行机箱。
Swift只会在每种情况下运行代码。如果要继续执行下一种情况,请使用如下fallthrough关键字:
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!")
}
区间运算符
Swift提供了两种生成区间的方式:..<
和...
运算符。半开区间运算符,..<
创建范围不超过最终值,但不包括最终值;封闭区间运算符...
,创建范围不超过最终值,包括最终值。
例如,区间1..<5
包含数字1、2、3和4,而范围1...5
包含数字1、2、3、4和5。
区间对于switch
块很有用,因为您可以在每种情况下使用它们。例如,如果某人参加考试,我们可以根据他们的分数打印不同的消息:
let score = 85
switch score {
case 0..<50:
print("You failed badly.")
case 50..<85:
print("You did OK.")
default:
print("You did great!")
}
和以前一样,default
必须确保存在所有可能的值。
总结
- 1.Swift具有用于进行算术和比较的运算符;他们大多像您已经知道的那样工作。
- 2.算术运算符有复合变体,可以在适当的位置修改其变量:+=,-=等等。
- 3.您可以使用
if
,else
和else if
根据条件的结果运行代码。 - 4.Swift具有三元运算符,该运算符将校验与正确和错误的代码块结合在一起。尽管您可能会在其他代码中看到它,但我不建议您自己使用它。
- 5.如果您有多个条件使用相同的值,则通常使用
switch
更容易。 - 6.您可以使用区间
..<
,...
,具体使用哪种取决于应排除还是包括最后一个数字。