for循环可以说是程序中最灵活,最常用,最重要的一个循环用法,大家经常用到,但是你真正理解for循环的运行原理吗?
举个例子:for(i=0;i<8;i++) 对于这个语句运行结束的时候 i 是多少?
经常用,却没怎么注意,运行结束的时候 i 是8;
下面说一下for循环语句的运行过程:
for(表达式1;表达式2;表达式3)
{循环体}
这三个表达式,可以都有,也可以都没有,也可以由任意的一项或两项,这就是for的灵活性所在;
解释一下三个表达式的含义:
表达式1:这个一般是初始化条件,如i=1。在第一个分号之前,可以用一个,也可以好几个,用逗号隔开;
表达式2:这个是循环条件,满足就继续执行循环体,不满足就跳出循环。这里一般是个逻辑判断语句;
表达式3:这个一般是改变循环条件的地方,如i++等。
执行顺序是,先初始化,也就是运算表达式1,初始化完成后,这个表达式就没有用处了;
接着判断是否满足循环条件,也就是运算表达式2,如果是真,就执行{循环体};
最后,运算表达式3,改变循环条件。这样第一次循环完成。
接着第二次循环,也就是运算表达式2,看是否满足循环条件,如果表达式2还满足,接着执行循环体;
完成后运算表达式3。如此往复循环,直到不满足表达式2后,跳出循环。
所以对于:for(i=0;i<8;i++)这个运算,当i=7的时候,满足循环,执行完后,i 还会自加1,也就是i++,这样 i 的值是8,再判断i<8,不满足,循环结束,此时 i=8。
类似的还有while循环,也要注意。比如while(i<8){i++;},循环结束时i=8;while(i<=8){i++;},循环结束时i=9。