c语的简单问题

来源:百度知道 编辑:UC知道 时间:2024/06/05 20:49:34
两个简单的for循环嵌套,分析的答案和真实答案总不一样。
#include<stdio.h>
void main()
{
int i,j,x=0;
for (i=0;i<2;i++)
{
x++;
for (j=0;j<=3;j++)
{
if (j%2)
continue;
x++;
}
x++;
}
printf("%d\n",x);
}
我觉得是6,可答案是8。哪位大侠能把详细过程写一下吗?谢谢!!

x++ 一共有三处

第一个 for执行一次 循环两次
会执行开始的那句 x++ 和末尾的那句x++ x一共增加4

第二个 for被第一个for执行了两次 循环4次
其中当j=0 j=2 时 都会执行x++ x会增加4

所以 x增加了8
最后是8

i=0 x=1 进入j循环 j=0 x=2 j=1 x=3 j=2跳出 x=4
i=1 x=5 进入j循环 j=0 x=6 j=1 x=7 j=2跳出 x=8
输出 8

for (j=0;j<=3;j++)
{
if (j%2)
continue;
x++;
}
这一段的意思是当j为偶的时候,不执行x++,所以这一段程序会让x加两次,再加上前面的一次和后面的一次++,所以执行一次循环后x会加4,两次当然是8了...