IOS开发-官网翻译-swift流程控制

2 篇文章 0 订阅

IOS开发-swift流程控制

使用if和switch来生成条件语句,使用for-in、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 score{…}是一个错误,而不是隐含的对零的比较。

可以使用if和let一起处理可能丢失的值。这些值表示为选项。可选值要么包含值,要么包含nil,以表示缺少值。在值的类型后面写一个问号(?)来标记该值为可选值。

var optionalString: String? = "Hello"
print(optionalString == nil)
// Prints "false"
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)"

分支语句支持任何数据类型和丰富的比较运算符。不只是限制在整数和相等比较

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将与模式匹配的值分配给一个常量。

在执行匹配的switch case中的代码之后,程序从switch语句中退出。执行不会继续到下一个case,因此不需要在每个case的代码末尾显式执行break退出。

通过为每个键值对提供一对要使用的名称,可以使用forin迭代字典中的项。字典是一个无序的集合,因此它们的键和值将以任意顺序遍历。

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 *= 2
}
print(n)

var m = 2
repeat {
    m *= 2
} while m < 100
print(m)

您可以使用..在循环中保存索引。<以生成索引范围

var total = 0
for i in 0..<4 {
    total += i
}
print(total)

使用. .<创建一个忽略其上值的范围,并使用…生成一个包含这两个值的范围

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值