Swift流程控制之循环语句和判断语句详解

2020-01-08 22:46:07王振洲

}
// H
// e
// l
// l
// o

 

For-Condition-Increment For-条件-递增

除了for-in循环,Swift还支持传统C语言按条件递增的for循环

复制代码
for var index = 0; index < 3; ++index {
    println("index is (index)")
}
// index is 0
// index is 1
// index is 2
这是常用的形式:
复制代码
for <initialization>; <condition>; <increment> {
    <statements>
}
封号把循环定义隔为了三个部分,跟C语言一样。然而与C不同的是,Swift不需要用括号把 “初始化; 条件; 增量” 的代码块包起来。

 

循环按照下面流程执行:

1.当循环第一次进入,initialization expression(初始化表达式)计算一次,设置好循环所需的常量或者变量。

2.计算condition expression(条件表达式)。如果计算结果为false(假),循环终止,并继续执行for循环尾括号(})后面的代码。如果结果为(true)真,则执行循环体大括号内的代码。

3.在所有的语句执行完后,计算increment expression(增量表达式)。计数器可能递增或递减,也可能根据语句执行的结果将初始化变量设为新的值。计算完增量表达式返回到第2步,条件表达式再次被计算。

上面描述的循环体的形式和执行过程可以简单的等同于:

复制代码
<initialization>
while <condition> {
    <statements>
    <increment>
}

 

常量和变量在初始化表达式中的声明(比如var index = 0)只在for循环自己内部有效。如果需要知道index最终的值,必须在循环开始前声明index:

复制代码
var index: Int
for index = 0; index < 3; ++index {
    println("index is (index)")
}
// index is 0
// index is 1
// index is 2
println("The loop statements were executed (index) times")
// prints "The loop statements were executed 3 times"
注意,循环完成后index最终的值是3,不是2。最后一次执行增量表达式调用了++index,把index设为3,使得index<3等于false,循环结束。