使用if和switch来创建条件,并使用for-in,for,while和repeat-while来创建循环。 条件语句或循环变量的圆括号可以选择不写。 函数体周围的大括号是必需的。
let individualScores = [75, 43, 103, 87, 12]
var teamScore = 0
for score in individualScores {
if score > 50 {
teamScore += 3
} else {
teamScore += 1
}
}
print(teamScore)
if语句
在if语句中,条件必须是布尔表达式 - 这意味着诸如if score {...}之类的代码是错误,在swift中没有0和1之类的隐式比较。
- 你可以使用if和let一起创建一个缺省值。 这些值表示为可选。 可选值可能是一个值或是nil。 在值的类型后面写入问号(?)以将该值标记为可选。
var optionalString: String? = "Hello" //声明了一个可选类型的变量
print(optionalString == nil) //"false\n"
var optionalName: String? = nil
var greeting = "Hello!"
if let name = optionalName { //如果可选值为nil,则条件为false,并且大括号中的代码将被跳过。 否则,可选值将被展开,并分配给let之后常量,使得展开的值在代码块中可用。
greeting = "Hello, \(name)"
}else{//条件不成立
greeting = "Hello, nil"
}
- 另一种处理可选值的方法是使用??提供一个默认值。 运算符。 如果缺少可选值,则使用默认值。
let nickName: String? = nil
let fullName: String = "John Appleseed"
let informalGreeting = "Hi \(nickName ?? fullName)"
switch
switch支持任何类型的数据和各种比较操作 - 不仅限于整数。
let vegetable = "red pepper"
switch vegetable {
case "celery":
print("Add some raisins and make ants on a log.")
case "cucumber", "watercress":
print("That would make a good tea sandwich.")
case let x where x.hasSuffix("pepper"):
print("Is it a spicy \(x)?")
default:
print("Everything tastes good in soup.")
}
在case中执行匹配的代码后,程序退出switch语句。 语句不会继续到下一个case,因此没有必要在每个case的代码结束时加上break。
for-in
您可以使用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 {
largest = number
}
}
}
print(largest)
你可以通过使用.. <使循环的范围保持索引在范围中。
使用.. <创建一个省略其上限值的范围,并使用...创建一个包含这两个值的范围。
var total = 0
for i in 0..<4 {
total += i
}
print(total)
while先判断在执行
var n = 2
while n < 100 {
n = n * 2
}
print(n)
repeat-while,先执行条件在判断
var m = 2
repeat {
m = m * 2
} while m < 100
print(m)
网友评论