有时,您希望代码仅在某个条件为真时执行,并在主要由if和else语句表示的Swift中执行。您给Swift一个要检查的条件,然后给它一个要在该条件为真时执行的代码块。
您还可以选择编写else并提供一个代码块,以便在条件为false时执行,或者甚至在条件为且具有更多条件时执行。代码的“块”只是一个代码块,它的开头用一个大括号{标记,结尾用一个小括号}标记。
下面是一个基本示例:
var action: String
var person = "hater"
if person == "hater" {
action = "hate"
}使用前面介绍的==(相等)运算符检查person中的字符串是否与字符串“hater”完全等效。如果是,则将action变量设置为“hate”。请注意,open和close大括号,也被称为“花括号”(curly brackets),它标记在条件为true时将要执行的代码的开始和结束。
让我们添加else if和else块:
var action: String
var person = "hater"
if person == "hater" {
action = "hate"
} else if person == "player" {
action = "play"
} else {
action = "cruise"
}这将按顺序检查每个条件,并且只执行其中一个块:一个人要么是仇恨者,要么是玩家,要么是其他任何人。
您可以要求Swift对任意多个条件进行求值,但它们都必须为真,以便Swift执行代码块。要检查多个条件,请使用&&运算符–它的意思是“与”。例如:
var action: String
var stayOutTooLate = true
var nothingInBrain = true
if stayOutTooLate && nothingInBrain {
action = "cruise"
}因为stayOutTooLate和nothingInBrain都是真的,所以整个情况都是真的,而action被设置为“cruise”。Swift使用一种叫做短路径(short-circuit)评估的方法来提高性能:如果它判断的是多个都需要是真的东西,而第一个是假的,那么它甚至不需要判断其他的东西。
这听起来很有哲理性,但事实上这很重要:有时你关心一个条件是否不正确,即是否错误。你可以用这个!(非)前面介绍的运算符。例如:
if !stayOutTooLate && !nothingInBrain {
action = "cruise"
}这一次,动作变量将只在stayOutTooLate和nothingIngBrain都为false时设置——!把它们翻了个底朝天。
本文来自Hacking with Swift给swift初学者的入门课程Swift for Complete Beginners 的Conditional statements