Swift循環語句
循環語句
取決於特定的循環條件,循環語句允許重複執行代碼塊。Swift 提供四種類型的循環語句:for
語句、for-in
語句、while
語句和do-while
語句。
通過break
語句和continue
語句可以改變循環語句的控制流。有關這兩條語句,詳情參見 Break 語句和Continue 語句。
循環語句語法
循環語句 → for語句
循環語句 → for-in語句
循環語句 → while語句
循環語句 → do-while語句
For 語句
for
語句允許在重複執行代碼塊的同時,遞增一個計數器。
for
語句的形式如下:
for
initialzation
;condition
;increment
{statements
}
initialzation、condition 和 increment 之間的分號,以及包圍循環體 statements 的大括號都是不可省略的。
for
語句的執行流程如下:
- initialzation 只會被執行一次,通常用於聲明和初始化在接下來的循環中需要使用的變量。
- 計算 condition 表達式: 如果爲
true
,statements 將會被執行,然後轉到第3步。如果爲false
,statements 和 increment 都不會被執行,for
至此執行完畢。 - 計算 increment 表達式,然後轉到第2步。
定義在 initialzation 中的變量僅在for
語句的作用域以內有效。condition 表達式的值的類型必須遵循LogicValue
協議。
For 循環語法
for語句 → for for初始條件 可選 ; 表達式 可選 ; 表達式 可選 代碼塊
for語句 → for ( for初始條件 可選 ; 表達式 可選 ; 表達式 可選 ) 代碼塊
for初始條件 → 變量聲明 | 表達式列表
For-In 語句
for-in
語句允許在重複執行代碼塊的同時,迭代集合(或遵循Sequence
協議的任意類型)中的每一項。
for-in
語句的形式如下:
for
item
incollection
{statements
}
for-in
語句在循環開始前會調用 collection 表達式的generate
方法來獲取一個生成器類型(這是一個遵循Generator
協議的類型)的值。接下來循環開始,調用 collection 表達式的next
方法。如果其返回值不是None
,它將會被賦給 item,然後執行 statements,執行完畢後回到循環開始處;否則,將不會賦值給item 也不會執行 statements,for-in
至此執行完畢。
For-In 循環語法
for-in語句 → for 模式 in 表達式 代碼塊
While 語句
while
語句允許重複執行代碼塊。
while
語句的形式如下:
while
condition
{statements
}
while
語句的執行流程如下:
- 計算 condition 表達式: 如果爲真
true
,轉到第2步。如果爲false
,while
至此執行完畢。 - 執行 statements ,然後轉到第1步。
由於 condition 的值在 statements 執行前就已計算出,因此while
語句中的 statements 可能會被執行若干次,也可能不會被執行。
condition 表達式的值的類型必須遵循LogicValue
協議。同時,condition 表達式也可以使用可選綁定,詳情參見可選綁定。
While 循環語法
while語句 → while while條件 代碼塊
while條件 → 表達式 | 聲明
Do-While 語句
do-while
語句允許代碼塊被執行一次或多次。
do-while
語句的形式如下:
do {
statements
} whilecondition
do-while
語句的執行流程如下:
- 執行 statements,然後轉到第2步。
- 計算 condition 表達式: 如果爲
true
,轉到第1步。如果爲false
,do-while
至此執行完畢。
由於 condition 表達式的值是在 statements 執行後才計算出,因此do-while
語句中的 statements 至少會被執行一次。
condition 表達式的值的類型必須遵循LogicValue
協議。同時,condition 表達式也可以使用可選綁定,詳情參見可選綁定。
Do-While 循環語法
do-while語句 → do 代碼塊 while while條件