C语言循环嵌套问题

#include<stdio.h>
{ 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("x=d%\n",x);
}

请各位高手告诉我:

两个for语句是如何循环的,是先把上面的一个循环完再循环下面一个?还是套在一起循环??(不要结果,只球过程,碰到几个FOR套一起的头都大了... ...)感激各位!

还有自加个自减了
我的理解是:
如:
int i=1,j;
i++;
j=i+i;
printf("%d%d",i,j);
i是使用之后自加,所以j=2,i也是=2;
不知道是正确还是错误

先说你那个i++的问题吧
结果应该是i=2,j=4
因为:i=1 在i++这步i 还是1
执行到下一步时,i变成2 ,此时j=i+i 所以j=4
这种问题以后不要问了,书上都有,说的很清楚

不管是什么循环都是一步一步的执行,比如你的这道题
外层循环 先执行,i=0 再执行内部循环j=0 当内部循环j =4 时不符合条件结束循环,在执行外部循环j=1 再执行内部循环,到j=4 时不符合条件结束循环 在执行外部循环j=2 ………………直到j 不符合条件

这种问题以后不要问了,书上都有,说的很清楚
温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-04-01
头文件都写上了 就不能写上函数名啊
两个for 语句是嵌套的

进入第一层for这时i=0先做x++;这时x==1 然后做第二层的for从j=0做到j=3共四次,使x==2 , 再做后面的x++ 这时x==3

再回到第一层循环i=1,再做四次内层循环(j==0到j==3),x==5, 再做后面的x++这时x==6

回到第一层i=2不满足i<2的条件 结束外层循环
执行printf函数 打印x 为6<CR>

for 语句应看清后面的复合语句到底是哪些,按照计算机的执行顺序来一步步做就会很简单了,建议你回去再好好复习一下for复合语的执行顺序是怎样的

这是错误的
int i=1,j;
i++;
j=i+i;
printf("%d%d",i,j);
i是使用之后自加,所以j=2,i也是=2;

i++ 后i==2
j=i+i后 j==4

i++;可以理解为先用值后加1,但j=i+i;是后一条语句,些时i的值已经为2,即j=2+2;些时j==4
祝你进步!本回答被提问者采纳
第2个回答  2007-04-01
For循环的机制其实很简单。就是多次的执行它的循环体的代码,而指定的量进行指定的改变。你那个程序先是i=0,接着进入j的循环,将执行四次,j的值从0到3,结束后i=1,再进入j的循环,4 次,完成后再i=2,但是你的要求是i<2,所以i的循环结束。程序直接跳到printf那。

后面的i=2;j=4。
i++的意思是指在当前行代码结束时加一。++i是指先加一再执行当前行代码。
因为你只有" i++; ",所以其实和 ++i; 是一个意思。
第3个回答  2007-04-01
进入第一层for这时i=0先做x++;这时x==1 然后做第二层的for从j=0做到j=3,使x==2 , 再做后面的x++ 这时x==3

再回到第一层循环i=1,再做内层循环(j==0到j==3),x==5, 再做后面的x++这时x==6

回到第一层i=2不满足i<2的条件 结束循环
第二题的i++因为是一个单独的语句,所以先自增加1后进行
j=i+i的运算j=4;如果是j=(i++)+(i++);则j=2.i先运算再自增.
第4个回答  2007-04-01
先把上面的一个循环完再循环下面一个
相似回答