for循环体中的i值问题

for(i=0;i<3;i++)
{
块内不对i做操作
}
printf("%d",i);

为什么输出3,不是2呢

详细点谢谢!

因为循环条件是i<3 才继续循环。
每次循环之后i加1,之后再来判断i<3 ,
当 i等于2 时判断i<3成立,还要继续循环。
只有当 i等于3 时这个判断i<3才不成立,循环结束。
所以循环结束后i的值就是3
如有帮助,望采纳!谢谢!

因为i=2的时候仍然符合i<3的条件,就会再次执行i++的命令,然后再次判断发现i=3时不符合条件了,于是循环才结束

i=0 0<3(成立) i=1 做里面的操作
i=1 1<3(成立) i=2 做里面的操作
i=2 2<3(成立) i=3 做里面的操作
i=3 3<3(不成立) 终止

够直白了吗✌