main() { int i,j,x=0; for(i=0;i<2;i++) { x++; for(j=0;j<=3;j++) { if(j%2) break; x++; } x++; }

printf("x=%d\n".x);
}
求执行后输出结果?求详细解答?

main()
{
int i,j,x=0;
for(i=0;i<2;i++) {
x++; //line1
for(j=0;j<=3;j++){
if(j%2)
break;
x++; //line2
}
x++; // line3
}
printf("x=%d\n".x);
}
第一轮i时: i=0, x=0
先执行 line1 的 x++, x=1了;
第一轮j时:j=0 时,j%2=0, 所以 if(j%2) 为假,执行后面line2的 x++, 则 x=2;
第二轮j时:j=1, j%2=1,所以 if(j%2) 为真,退出 for(j=0;j<=3;j++) 这个循环,执行 line3 处的 x++, x=3
第二轮i时:i=1, x=3;
先执行 line1 的 x++, x=4 了
第一轮j时: j=0 时,j%2=0, 所以 if(j%2) 为假,执行后面line2的 x++, 则 x=5;
第二轮j时:j=1, j%2=1,所以 if(j%2) 为真,退出 for(j=0;j<=3;j++) 这个循环,执行 line3 处的 x++, x=6
第三轮i时:i=2,不满足 i<2 的条件,直接退出循环
执行 printf("x=%d\n".x);
所以 x=6
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答