Ios 为什么我++;和++;我在swift2中产生相同的结果?
我使用的是Ios 为什么我++;和++;我在swift2中产生相同的结果?,ios,iphone,swift,swift2,Ios,Iphone,Swift,Swift2,我使用的是Swift2,我有两个循环: for var i: Int = 0; i < 4; i++ { print("the i = \(i)") } and for var i: Int = 0; i < 4; ++i { print("the i = \(i)") } 变量i的:Int=0;i
Swift2
,我有两个循环:
for var i: Int = 0; i < 4; i++ {
print("the i = \(i)")
}
and
for var i: Int = 0; i < 4; ++i {
print("the i = \(i)")
}
变量i的:Int=0;i<4;i++{
打印(“i=\(i)”)
}
及
对于变量i:Int=0;i<4++我{
打印(“i=\(i)”)
}
我在这两本书上得到了完全相同的印刷品。为什么请?
i++
和++i
在这种情况下做同样的事情;将i
增加1。它们之间的区别在于它们返回不同的值,这在循环中并不重要,因为“增量”部分的返回值被忽略
i++
(称为“增量后”)返回增量前的i
值,而++i
(称为“增量前”)返回增量后的i
值。例如:
var i = 1
print(i++) // Prints 1, i is now 2
print(++i) // Prints 3, i is now 3
传统上,预增量(++i
)稍快一些,因为当它返回值时,不必在增量后记住先前的i
,但我怀疑在现代编译器中有什么区别。根据for
语句的语法是:
for initialization; condition; increment {
statements
}
如果条件为真,那么将执行语句
,而不是增量,这就是得到相同结果的原因
请阅读:
for语句的执行如下:
++i和i++是表示递增i的表达式,但是++i表示在使用表达式之前执行递增,而i++表示在使用之后执行递增 在for循环中,增量表达式的计算发生在执行块中的代码之后,因此,在您的示例中,使用哪一个并不重要 要查看差异,请尝试以下方法:
var j: Int = 0
for var i: Int = 0; i < 4; i++ {
print("the i = \(i) the j = \(j++)")
}
var j:Int=0
对于变量i:Int=0;i<4;i++{
打印(“i=\(i)j=\(j++”)
}
及
var j:Int=0
对于变量i:Int=0;i<4++我{
打印(“i=\(i)j=\(++j)”)
}
var j: Int = 0
for var i: Int = 0; i < 4; ++i {
print("the i = \(i) the j = \(++j)")
}