发布于 2015-06-14 01:53:53 | 140 次阅读 | 评论: 0 | 来源: 网络整理

循环语句

取决于特定的循环条件,循环语句允许重复执行代码块。Swift 提供四种类型的循环语句:for语句、for-in语句、while语句和do-while语句。

通过break语句和continue语句可以改变循环语句的控制流。有关这两条语句,详情参见 Break 语句Continue 语句


循环语句语法
循环语句 → for语句
循环语句 → for-in语句
循环语句 → while语句
循环语句 → do-while语句
 

For 语句

for语句允许在重复执行代码块的同时,递增一个计数器。

for语句的形式如下:

for initialzationconditionincrement {
statements
}

initialzationcondition 和 increment 之间的分号,以及包围循环体 statements 的大括号都是不可省略的。

for语句的执行流程如下:

  1. initialzation 只会被执行一次,通常用于声明和初始化在接下来的循环中需要使用的变量。
  2. 计算 condition 表达式: 如果为truestatements 将会被执行,然后转到第3步。如果为falsestatements 和 increment 都不会被执行,for至此执行完毕。
  3. 计算 increment 表达式,然后转到第2步。

定义在 initialzation 中的变量仅在for语句的作用域以内有效。condition 表达式的值的类型必须遵循LogicValue协议。


For 循环语法
for语句 → for for初始条件 可选 ; 表达式 可选 ; 表达式 可选 代码块
for语句 → for ( for初始条件 可选 ; 表达式 可选 ; 表达式 可选 ) 代码块
for初始条件 → 变量声明 | 表达式列表
 

For-In 语句

for-in语句允许在重复执行代码块的同时,迭代集合(或遵循Sequence协议的任意类型)中的每一项。

for-in语句的形式如下:

for item in collection {
statements
}

for-in语句在循环开始前会调用 collection 表达式的generate方法来获取一个生成器类型(这是一个遵循Generator协议的类型)的值。接下来循环开始,调用 collection 表达式的next方法。如果其返回值不是None,它将会被赋给 item,然后执行 statements,执行完毕后回到循环开始处;否则,将不会赋值给item 也不会执行 statementsfor-in至此执行完毕。


For-In 循环语法
for-in语句 → for 模式 in 表达式 代码块
 

While 语句

while语句允许重复执行代码块。

while语句的形式如下:

while condition {
statements
}

while语句的执行流程如下:

  1. 计算 condition 表达式: 如果为真true,转到第2步。如果为falsewhile至此执行完毕。
  2. 执行 statements ,然后转到第1步。

由于 condition 的值在 statements 执行前就已计算出,因此while语句中的 statements 可能会被执行若干次,也可能不会被执行。

condition 表达式的值的类型必须遵循LogicValue协议。同时,condition 表达式也可以使用可选绑定,详情参见可选绑定


While 循环语法
while语句 → while while条件 代码块
while条件 → 表达式 | 声明
 

Do-While 语句

do-while语句允许代码块被执行一次或多次。

do-while语句的形式如下:


do {
statements
} while condition

do-while语句的执行流程如下:

  1. 执行 statements,然后转到第2步。
  2. 计算 condition 表达式: 如果为true,转到第1步。如果为falsedo-while至此执行完毕。

由于 condition 表达式的值是在 statements 执行后才计算出,因此do-while语句中的 statements 至少会被执行一次。

condition 表达式的值的类型必须遵循LogicValue协议。同时,condition 表达式也可以使用可选绑定,详情参见可选绑定


Do-While 循环语法
do-while语句 → do 代码块 while while条件
 

最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务