Swift之控制流程语句

使用if和switch作为条件语句,使用for-in,for,while和do-while作为循环语句。条件或者循环语句的变量的圆括弧不是可选的,但是在内容体的大括号是必须的。

“let individualScores = [75, 43, 103, 87, 12]
var teamScore = 0
for score in individualScores {
    if score > 50 {
        teamScore += 3
    } else {
        teamScore += 1
    }
}
teamScore”
在if条件语句中,状态值必须是boolean类型的,这意味着像if score{...}是错误的,和0相比不是绝对的。

当你一起使用if和let,值可能会丢失。这些值被当做可变(可选的)。一个可选的值要么包含值或者包含nil来指示这个值可能将要丢失。在值的类型后面使用(?)来标记该值是可选的。

“var optionalString: String? = "Hello"
optionalString == nil
 
var optionalName: String? = "John Appleseed"
var greeting = "Hello!"
if let name = optionalName {
    greeting = "Hello, \(name)"
}”

如果这个可选的变量值为nil,那么这个条件是false并且这个大括号里的代码会跳过。其他情况下这个可选值是被展开的,并且会给let后面的常量赋值。被展开的值可以给大括号里面可用。

switch可以支持任意数据类型和广泛的可以比较操作符-它们不只限于integers类型和用于比较的测试。

“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 tastes good in soup."
}”
在执行完switch语句内部匹配的代码后,程序将会退出整个循环体。执行语句将不会到下一个条件,因此也没有必要明确的在每一个条件后面中断。
你可以通过给每一个键值对提供一组对应名称,使用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
        }
    }
}
使用while语句重复执行包内的代码直到条件改变。这个循环条件也可以相应的放在后面,确保循环至少一次。

var n = 2
while n < 100 {
    n = n * 2
}
 
var m = 2
do {
    m = m * 2
} while m < 100
你可以保持一个索引在循环体里,要么使用..来保持一个索引区间要么明确的写一个初始化的,条件,或者自增。一下两个例子效果一样。

var firstForLoop = 0
for i in 0..3 {
    firstForLoop += i
}
firstForLoop
 
var secondForLoop = 0
for var i = 0; i < 3; ++i {
    secondForLoop += 1
}
secondForLoop
使用..来生成一个区间忽略他上面一层的值,使用...意味着包含两端的值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值