求解c语言的for语句????

来源:百度知道 编辑:UC知道 时间:2024/05/23 13:51:58
我是个自学c的人,只有初中文化,在学习中遇到了for语句,有点弄不明白希望有人可以解释,,谢谢了.
main()
{
int i,j;
printf("i\n");
for(i=0;i<2;i++)
printf("%d\n",i);
}
这个程序的结果是:
i
0
1
可是为什么在加一个for,结果会变?比如:
main()
{
int i,j;
printf("i j\n");
for(i=0;i<2;i++)
for(j=0;j<3;j++)
printf(%d %d\n",i,j);
}
为什么结果会是:
i j
0 0
0 1
0 2
1 0
1 1
1 2

希望有人能够解答下,再次谢谢了.

可是为什么在加一个for,结果会变?比如:
main()
{
int i,j;
printf("i j\n");
for(i=0;i<2;i++)
for(j=0;j<3;j++)
printf(%d %d\n",i,j);
}
很简单,一步一步给你讲,for语句的功能在给你复习一遍,for(i=0;i〈2;i++)先计算i在求解表达式2,如果表达式2的值为真则执行for的内嵌语句,如果表达式2的值为假就执行for语句后面的语句。
for(i=0;i〈2;i++)
for(j=0;j<3;j++)
printf(%d %d\n",i,j);
看看for(i=0;i〈2;i++)i=0 i〈2这里就是表达式2的值就为真所,就执行 for(j=0;j<3;j++) 这个for语句的表达式2值也为真就执行printf(%d %d\n",i,j);这里是输出i和j的值就是0 0,因为i=0 j也=0
在执行for(j=0;j<3;j++)的第3个表达式j++,然后在计算表达式1的值,在继续判断表达式2,此时j的值就是1了,表达式2的值还是真,也就继续输出i,j 这里i的值还是0 j的值则加了1,就输出0和1,
for语句继续执行直到j〉=3也就是下次输出就是0和2,这里j在自加,j的值就变成3了,判断表达式2 3〈3 3不小于3这个for语句就结束了,但是for(i=0;i<2;i++) 这个还没执行完,也就是大循环,依次类推仔细看看!我刚开始学也是搞不懂呵呵!!

main()
{
int i,j;
printf("i j\n");
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
{
printf(%d %d\n",i,j);
}