Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/107.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 为什么我++;和++;我在swift2中产生相同的结果?_Ios_Iphone_Swift_Swift2 - Fatal编程技术网

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语句的执行如下:

  • 初始化只计算一次。它通常用于声明和初始化循环其余部分所需的任何变量

  • 将计算条件表达式。 如果为true,程序将执行这些语句,并继续执行步骤

  • 如果为false,则程序不执行语句或增量表达式,并且程序完成执行for语句。 对增量表达式求值,执行返回到步骤2

  • ++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)")
    }