for循环中的前缀和后缀增量

TOP*_*KEK 2 c# pre-increment post-increment

给出以下代码

int j = 0;
for (int i = 0; i < str.Length; ++i) {
    if (i==j) {
        Console.WriteLine ("equal");
    }
    j++;
}
Run Code Online (Sandbox Code Playgroud)

我预计++i会改变i,从最初01,从而i==j评价false.

但事实并非如此.为什么?

qap*_*hla 13

如果表单中有循环,则for (a; b; c) { d; }可以将其视为以下while循环:

a;
while(b) {
    d;
    c;
}
Run Code Online (Sandbox Code Playgroud)

如您所见,增量直到第一次迭代后才会发生,无论它是增量前还是后增量.