type
status
date
slug
summary
tags
category
icon
password
example-row
example-row
Swift提供了for-in 循环、while循环,ifguardswitch 作为条件字段,continuebreakfallthroughreturnthrow作为控制转移字段。

for-in

遍历数组

遍历字典

遍历数字范围

不需要区间序列内每一项的值,你可以使用下划线(_)替代变量名

while循环

while 循环会一直运行一段语句直到条件变成 false

while 循环

每次在循环开始时计算条件是否符合;

repeat-while 循环

每次在循环结束时计算条件是否符合,相当于java里的do-while

条件语句

if

只有该条件为 true 时,才执行相关代码。

guard

if 一样,都是条件为 true 时,才执行相关代码。不同的是,if 的条件为 true 时,执行的相关代码在条件后面的闭包里。而guard的条件为true时,执行的相关代码在guard代码段后面。
输出结果:

switch

switch 语句会尝试把某个值与若干个模式(pattern)进行匹配。根据第一个匹配成功的模式,switch 语句会执行对应的代码。当有可能的情况较多时,通常用 switch 语句替换 if 语句。
与 C 和 Objective-C 中的 switch 语句不同,在 Swift 中,当匹配的 case 分支中的代码执行完毕后,程序会终止 switch 语句,而不会继续执行下一个 case 分支。这也就是说,不需要在 case 分支中显式地使用 break 语句。每一个 case 分支都必须包含至少一条语句。
复合条件
多个相同处理的case,可以合并成一个复合条件。
区间条件
case 分支的模式可以是一个值的区间。
元组条件
可以使用元组在同一个 switch 语句中测试多个值。元组中的元素可以是值,也可以是区间。另外,使用下划线(_)来匹配所有可能的值。
Swift 允许多个 case 匹配同一个值。实际上,在这个例子中,四个 case 都可以匹配点 (0, 0) 。但是,如果存在多个匹配,那么只会执行第一个被匹配到的 case 分支。
值绑定
case 分支允许将匹配的值声明为临时常量或变量,并且在 case 分支体内使用 —— 这种行为被称为值绑定(value binding),因为匹配的值在 case 分支体内,与临时的常量或变量绑定。
这个 switch 语句不包含默认分支。这是因为最后一个 case ——case let(x, y) 声明了一个可以匹配余下所有值的元组。这使得 switch 语句已经完备了,因此不需要再书写默认分支。
where关键字
case 分支的模式可以使用 where 语句来判断额外的条件。

控制转移语句

  • continue 语句告诉一个循环体立刻停止本次循环,重新开始下次循环,并且不会退出循环体。
  • break 语句会立刻结束整个控制流的执行。break 可以在 switch 或循环语句中使用,用来提前结束 switch 或循环语句。
  • fallthrough 用于贯穿switch语句的case条件,使代码继续连接到下一个 case 中的代码。类似C语言的switch语句中,case不写break的效果。
 
  • return 用于退出当前的函数,并返回一个值。
  • throw 用于退出当前的函数,并返回一个异常。

带标签的语句

 
如果上述的 break 语句没有使用 gameLoop 标签,那么它将会中断 switch 语句而不是 while 循环。使用 gameLoop 标签清晰的表明了 break 想要中断的是哪个代码块。

检测 API 可用性

ifguard 语句中使用 可用性条件(availability condition)去有条件的执行一段代码,来在运行时判断调用的 API 是否可用。
除了 #available 以外, Swift 还支持通过不可用性条件来进行不可用性检查。
 
【swift008】集合类型-字典(Dictionary)【swift010】注释
  • Twikoo