为什么当我在for循环外面打印变量时,它会增加1?

时间:2012-04-23 18:52:04

标签: objective-c for-loop

int main (int argc, const char * argv[]){

    @autoreleasepool {
        int x = 1;
        for (x = 1; x <= 10; x++)  {
            NSLog(@"%i",x); //the answer here is 10.
        }

        NSLog(@"Number %i",x); //the answer here is 11.
    }

    return 0;
}

所以我的问题是,为什么当我在for循环之外打印'x'时它会在初始10中加1?

提前感谢。

6 个答案:

答案 0 :(得分:4)

一旦x大于10,循环就会结束。因此,它循环遍历循环10次,加1,这是11,然后突破循环。

答案 1 :(得分:2)

不是,循环声明添加了它。

for (x = 1; x <= 10; x++) {
    // some code
}

就像

x = 1;
while(x <= 10) {
    // some code
x++;
}

当x = 11时,循环停止。

答案 2 :(得分:2)

你的循环等于

x = 1;
while(x <= 10)
{
    // log x
    x++;
}

正如您所看到的,在最后一次迭代(x = 10)x增加,然后循环中断。

答案 3 :(得分:1)

因为“for”循环首先递增变量x的值,然后与条件!

进行比较

答案 4 :(得分:0)

因为步骤子句x++在最后一次成功的循环迭代之后运行。这就是它停止的方式。

  1. x = 1,然后我们循环10次,每次递增它。
  2. 你到达x = 10并且你的循环体最后一次运行。
  3. 然后,step子句运行x++,现在x = 11
  4. 检查循环条件x <= 10,现在为假,循环退出。
  5. 如果x永远不会达到11,那么你永远不知道何时退出这个循环。

答案 5 :(得分:0)

循环从1到10迭代10次,当循环结束时,x的值变为11。