使用if和switch进行条件判断,for-in、for、while和do-while进行循环。条件判断时的圆括号时可选的,但是if或者循环体的花括号{}时必须的。
let individualScores = [75, 43, 103, 87, 12]
var teamScore = 0
for score in individualScores {
if score > 50 {
teamScore += 3
} else {
teamScore += 1
}
}
teamScore
if语句中,判断条件必须时布尔表达式,也就是说if score { ... }的形式是错误的,它并不会隐式的与0进行比较。
你可以使用if和let一起来判断值是否缺失。这些值被看作是选项(Optionals)。一个选项包含一个值或者nil来表示是否缺失内容。在类型后面添加?标记一个值是一个选项。
var optionalString: String? = "Hello"
optionalString == nil
var optionalName: String? = "John Apppleseed"
var greeting = "Hello!"
if let name = optionalName {
greeting = "Hello, \(name)"
}
试验
将optionalName的值改为nil,看一下能不能得到问候。在if后添加else语句,使得optionalName为nil的时候打印不同的问候语句。
如果选项的值为nil,条件为false,if后的语句被跳过。否则选项的值被赋值给let后的常量,并且该常量的作用域为花括号里面。
Swift里的switch语句支持任意数据类型以及比较操作,而不是被限制为整数的相等。
let vegetable = "red pepper"
switch vegetable {
case "celery":
let vegetableComment = "Add some raisins and make ants on a log."
case "cucumber", "watercress":
let vegetableComment = "That would make a good tea sandwich."
case let x where x.hasSuffix("pepper"):
let vegetableComment = "Is it a spicy \(x)?"
default:
let vegetableComment = "Everything tasts good in soup."
}
试验
尝试移除default语句,看看有什么错
执行完switch的一个case后,程序会从switch语句中跳出,而不会继续执行下一个case语句,因此在Swift中不需要显式的使用break跳出每一个分支。
在使用for-in进行迭代的时候,每次迭代都会返回一个键值对:
let interestingNumbers = [
"Prime": [2, 3, 5, 7, 11, 13],
"Fibonacci": [1, 1, 2, 3, 5, 8],
"Square": [1, 4, 9, 16, 25],
]
var largest = 0
for (kind, numbers) in interestingNumbers {
for number in numbers {
if number > largest {
largetst = number
}
}
}
largest
试验
增加一个变量,记录最大值所在的分类
while会一直循环执行,直到判断条件发生变化。如果使用do-while,循环体至少会执行一次。
var n = 2
while n < 100 {
n = n * 2
}
n
var m = 2
do {
m = m * 2
} while m < 100
m
在for循环中通过索引来控制循环,其中..用来创建一个索引的范围,下面两个循环是一样的效果
var firstForLoop = 0
for i in 0..3 {
firstForLoop += i
}
firstForLoop
var secondForLoop = 0
for var i = 0; i < 3; ++i {
secondForLoop += 1
}
secondForLoop
使用..(两点)创建的范围不包括最大值,而...(三点)创建的范围包含最大值。
Swift流程控制教程

本文介绍了Swift语言中的流程控制语句,包括if和switch条件判断、for-in、for、while及do-while循环的使用方法。文章还展示了如何利用Swift的特性进行更高级的条件判断和循环操作。
772

被折叠的 条评论
为什么被折叠?



