swift 4.2 官方文档学习笔记(五)- Control Flow

Sellen Wei
2 min readDec 13, 2018

--

  1. For loop相关的特殊使用:

2. repeat- while :在while 的条件false时会多执行一次循环

3.switch的判断条件中,case 的判断条件可以很灵活啊,可以是某个值,也可以是个区间,或者元组,也可以是某个variable:

4. switch + where的使用方法,有点像条件判断语句,个人感觉没什么必要使用switch, 直接用if else更省力:

5. Control Transfer Statements:一共包含五种,continue, break, fallthrough, return, throw. 这五个除了fallthrough之外都比较常见,continue就是忽略其他的内容,直接执行下个循环

switch在swift 和 objc中有两种不同的执行方法,在swift中使用switch,当一个case 满足时,switch直接结束执行,不会继续往下, 这个意思就是说,swift语言中的switch条件语句,如果不使用fall through关键词,就会在某个条件满足时,直接跳出;objc则恰恰相反,当满足一个case后,他会顺序执行所有满足条件的case,包括default,因此objc中要多使用break来强制结束。而swift则需要fall through才能贯穿执行,反之程序终止。

需要注意的是如果使用了fallthrough,下一个紧挨着的case会被强制执行!!强制执行!强制执行!而且fallthrough只能移动到下个判断条件一次,如果判断条件满足而没有看到fallthrough关键词,则程序还是会终止的。

6. 使用label对while循环进行标记,这样做的好处是break gameLoop是直接结束while循环,而不是结束switch,如果程序中有多个while,那么continue gameLoop的指向性就会更明显,这里continue带不带label都没有歧义。

7.guard if 中可以使用 return,break,continue 和throw,也可以使用不带返回值的任意方法

8. Checking API Availability(check OS版本号,执行匹配的API)

这一章control flow由于大部分是比较常见的判断语句,所以总结的都是精华,比较简单,具体的实例可以在原文中看到更多。

--

--