有时,您希望代码仅在某个条件为真时执行,并在主要由if
和else
语句表示的Swift中执行。您给Swift一个要检查的条件,然后给它一个要在该条件为真时执行的代码块。
您还可以选择编写else
并提供一个代码块,以便在条件为false
时执行,或者甚至在条件为且具有更多条件时执行。代码的“块”只是一个代码块,它的开头用一个大括号{
标记,结尾用一个小括号}
标记。
下面是一个基本示例:
代码语言:javascript复制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