浅谈Swift之控制流( if 和 switch 、for-in 、 for 、 while 和
声明:内容大部分来自于《THE SWIFT PROGRAMMING LANGUAGE》 iflet scores = [75,44,55,62,88]
var teamScore = 0;
for score in scores {
// 在if语句中,条件必须是一个布尔表达式
if score > 50 {
teamScore += 3
} else {
teamScore += 1
}
}
print(teamScore);
可以使用if和let来处理值缺失的情况,这些值由可选值来表示,一个可的选值是一个具体的值或者是nil以表示缺失 let optionalString : String? = "hello"
print(optionalString == nil)
// false
let optionalName : String? = nil
var greeting = "hello"
if let name = optionalName {
greeting = "hello (name)"
}
print(greeting)
另一种处理可选值的方法是通过使用 ?? 操作符来提供一个默认值。如果可选值缺失的话,可以使用默认值来代替。 let firstName : String? = nil
let secondName : String = "daisuke"
let resultName = "hello,(firstName ?? secondName)"
print(resultName) // hello,daisuke
switch很多人奇怪,无论是Java或者oc语言switch都有break跳出,但是 // switch支持任意类型的数据
let vegetable = "haha,red"
switch vegetable {
case "xixi":
print("xixi")
case "hahas":
print("hahas")
case let red where red.hasSuffix("red"):
// 将vegetable赋给red,判断red有没有“red这个字符串”
print("red")
default:
print("default")
}
for-in使用 for-in 来遍历字典,需要两个变量来表示每个键值对。 let numberDict = [
"prime" : [1,2,45,88],"square" : [1,1,501]
]
var largest = 0;
var type = ""
for (kind,numbers) in numberDict {
for number in numbers {
if number > largest {
largest = number
type = kind
}
}
}
print(type)
print(largest)
whilevar n = 2
while n < 100 {
n = n * 2;
}
print(n)
repeat-while至少循环一次(类似Java的do-while) // 至少循环一次(类似Java的do-while)
var m = 2
repeat {
m = m*2
} while m < 2
print(m)
for// ..<不包括上界
var firstForLoop = 0
// 不包含4
for i in 0..<4 {
firstForLoop += i
}
print(firstForLoop)
// ...包括上界
var firstForLoop1 = 0
// 包含4
for i in 0...4 {
firstForLoop1 += i
}
print(firstForLoop1)
// 不包括上界
var firstForLoop2 = 0
// 不包含4
for var i = 0; i<4; i++ {
firstForLoop2 += i
}
print(firstForLoop2)
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |