#include <stdio.h> main( ) { int x, y; for(x=30, y=0; x>=10, y<10; x--, y++) x/=2, y+=2; printf(“x=%d,y=%d\n”,x,y); }
运行结果为:
152
1. x=30, y=0;
2. x/=2, y+=2; --> x=15, y=2;
3. x--, y++ --> x=14, y=3;
4. 比较x>=10, y<10,满足其一即可继续
5. x/=2, y+=2; --> x=7, y=5;
6. x--, y++ --> x=6, y=6;
7. 比较x>=10, y<10,满足其一即可继续
8. x/=2, y+=2; --> x=3, y=8;
9. x--, y++ --> x=2, y=9;
10. 比较x>=10, y<10,满足其一即可继续
11. x/=2, y+=2; --> x=1, y=11;
12. x--, y++ --> x=0, y=12;
13. 比较x>=10, y<10,均不满足,跳出循环
printf(“x=%d,y=%d\n”,x,y);
0,12
7,5
-2 10
0 10
0 12
74
x=6,y=6
7. 5
x=6,y=6
7
4
x=0,y=12
x=0,y=12
x=1,y=12
66
x=7,y=5
x=10 y=11
0,12
x=7,y=5
1 11
x=7,y=4
1
6
25,8
x >= 10, y < 10
这个条件部分的值是 最后一个表达式的结果,也就是
y < 10
一开始进入循环x=15,y=2,然后执行x--,y++,x=14,y=3,
进入第二次循环,x=7,y=5,执行x--,y++,x=6,y=6,
进入第三次循环,x=3,y=8,执行x--,y++,x=2,y=9,
进入第四次循环,x=1,y=11,y>10了,退出循环,执行x--,y++,x=0,y=12
19819717717 回复 jaygee_: 我也是这样想的
6,6
x=0y=10
x=0 y=12
循环条件x>=10, y<10;中间用的逗号,逗号运算符会返回最后一个表达式的运算符,所以实际循环条件是y<10
x=0,y=12
6 6
x=15,y=2
x=3,y=8
x=1,y=11
7,5
6,6
(for(;condition1,condition2,...,conditionN;) 只有最后一个conditionN有效 )
X=6,Y=6
逗号隔开只有最后一个条件生效
2
x=10,y=11
x=6,y=6
6,4
14,3
x=7,y=3
用户登录可进行刷题及查看答案
登录后提交答案