标签:
使用 if和 switch来做逻辑判断,使用 for-in, for,
while,以及 repeat-while来做循环。使用圆括号把条件或者循环变量括起来不再是强制的了,不过仍旧需要使用花括号来括住代码块
let hscores = [75,55,86,59,22] var teamScore = 0 for score in hscores { if score > 50 { teamScore += 3 print("这里是什么\(teamScore)") }else { teamScore += 1 print("这里是啥\(teamScore)") } }
在一个 if语句当中,条件必须是布尔表达式——这意味着比如说 if hscore {...}将会报错,不再隐式地与零做计算了
var optionalString: String? = "Hello" print(optionalString == nil) var optionalName: String? = "John Appleseed" var greeting = "Hello!" if let name = optionalName { greeting = "Hello, \(name)" }
你可以一起使用 if和 let来操作那些可能会丢失的值。这些值使用可选项表示。可选的值包括了一个值或者一个 nil来表示值不存在。在一个值的类型后边使用问号( ?)来把某个值标记为可选的
var optionalString: String? = "Hello" print(optionalString == nil) var optionalName: String? = "John Appleseed" var greeting = "Hello!" if let name = optionalName { greeting = "Hello, \(name)" }
如果可选项的值为 nil,则条件为 false并且花括号里的代码将会被跳过。否则,可选项的值就会被展开且赋给 let后边声明的常量,这样会让展开的值对花括号内的代码可用。
另一种处理可选值的方法是使用 ?? 运算符提供默认值。如果可选值丢失,默认值就会使用
let nickName: String? = nil let fullName: String = "John Appleseed" let informalGreeting = "Hi \(nickName ?? fullName)"
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.") }
注意 let 可以用在模式里来指定匹配的值到一个常量当中。
你可以使用 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)
使用 while来重复代码快直到条件改变。循环的条件可以放在末尾,这样可以保证循环至少运行了一次
var n = 2 while n < 100 { n = n * 2 } print(n) var m = 2 repeat { m = m * 2 } while m < 100 print(m)
标签:
原文地址:http://www.cnblogs.com/hero11223/p/5653167.html