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?
提前感谢。
答案 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++
在最后一次成功的循环迭代之后运行。这就是它停止的方式。
x = 1
,然后我们循环10次,每次递增它。x = 10
并且你的循环体最后一次运行。x++
,现在x = 11
x <= 10
,现在为假,循环退出。如果x
永远不会达到11,那么你永远不知道何时退出这个循环。
答案 5 :(得分:0)
循环从1到10迭代10次,当循环结束时,x的值变为11。