for(Expression a;Expression b;Expression c){
Expression d;
}
执行顺序如下:
1.先进行条件初始化,即完成Expression a的内容;
2.判断条件Expression b,如果条件为假,则退出;否则执行3
3.执行Expression d内容;
4,执行Expression c内容;
5.执行2;
注意 先执行d 在执行 c
例子如下:
(1)
#include
using namespace std;
int main()
{
int a,x;
for(a=0,x=0;a<=1&&!x++;a++){
a++;
}
cout <
<
<
分析:
A.a=0,x=0;
B.判断发现a<1,且!x=true,则执行循环体内的代码,a++,此时a=1;x=1;
C.执行for()中的Expression c,a++,此时a=2;
D.判断发现a>1不符合循环条件,又因为&&的短路机制,不执行x++;
所以最后输出为a=2,x=1,即21
(2)
#include
using namespace std;
int main()
{
int a,x;
for(a=0,x=0;a<=1&&!x++;){
a++;
}
cout <
<
<
分析:
A.a=0,x=0;
B.判断发现a<1,且!x=true,此时a=1;x=1;
C.执行for()中的Expression c,a++,此时a=1;
D.判断发现a=1(true),继续判断!x++;不符合条件,此时x=2;
所以最后输出为a=1,x=2,即12