1.for
for循环是比较常用的,for是c++的关键字,虽然看起来像函数调用.但不是。
其格式如
for(语句一;语句二;语句三)
{
循环体;
}
首先讲下的它的过程
执行语句一
执行语句二(判定是否为真)——(是)执行循环体——语句三——执行语句二。。。。。。。。。。。
——(否)退出循环
语句一是循环值的初始化 比如for(int i=0;i<6;i++)
int i=0;就是语句一,可以发现其实个表达式;其实在早期,c++是不准许这样的,后来改了,可以使用这样的格式。这样可以更方便点。i值就是循环体。
语句一有时候是可以省略的,但不能省略其分号,for(;i<6;i++) 这个是可以的。
语句二是循环体的条件 比如for(int i=0;i<6;i++)
i<6,就是语句二,可以发现其实个表达式;i<6.是个bool型,有两种结果,true和false;这个是for循环的重要部分;所以语句二必须是bool型的表达式,不能省略,省略这个语句就没意义了。
语句二是循环体动作 比如for(int i=0;i<6;i++)
ii++,就是语句三,i++是后置++;素所以是后++的,其实这里如果换上++i;结果一样。但不同的是理解方式。当然也可以i+=1;这样也可以;这个也可以省略;
举个列子:输出6的阶乘 1*2*3*4*5*6=720;
int t=1;用来保存值
for(int i=1;i<=6;i++)
{
t*=i;
}
我们来推演结果
1,i赋值为1,i<=6是true; 所以 t*=i;执行 为t=t*i;为1,执行i++,i为2;
2,i<=6是true; 所以 t*=i;执行 为t=t*i;为2,执行i++,i++为3;
3,i<=6是true; 所以 t*=i;执行 为t=t*i;为6,执行i++,i++为4;
4,i<=6是true; 所以 t*=i;执行 为t=t*i;为24,执行i++,i++为5;
5,i<=6是true; 所以 t*=i;执行 为t=t*i;为120,执行i++,i++为6;
6,i<=6是true; 所以 t*=i;执行 为t=t*i;为720,执行i++,i++为7;
7,i<=6是false; 所以退出循环;