关于for循环
当循环体只有一条语句时我们可以不用{}将它括起来
但是循环体为两条语句以上时,就得用{}将它们括起来了
for(i=1;i<=5;i++)
for(j=0;j<=i;j++)
printf("#");
printf("\n");
以上代码是这样执行的
/*外层循环体只有一条语句;printf("#");是属于for(j=0;j<=i;j++) 的则作为一个整体来看*/
for(j=0;j<=i;j++)
printf("#");
/*内层循环体*/
printf("#");
执行过程:
外层循环i=1
内层循环j从0到i完了
外层循环i=2
内层循环j从0到i完了
...............
...............
...............
直到i=6时,外层循环才结束
即打印:1+2+3+4+5=15个#,中途没有回车换行
###############
最后才是执行printf("\n");
而下面的代码:
for(i=1;i<=5;i++)
{
for(j=0;j<=i;j++)
printf("#");
printf("\n");
}
/*外层循环体,两条语句,要用{}括起来*/
for(j=0;j<=i;j++)
printf("#");
printf("\n");
/*内层循环体*/
printf("#");
执行过程:
外层循环i=1
内层循环j从0到i完了
执行printf("\n"); 换行
外层循环i=2
内层循环j从0到i完了
执行printf("\n"); 换行
...............
...............
...............
直到i=6时,外层循环才结束
就是说内层循环结束以后就执行printf("\n"); 换行
其它结果为
#
##
###
####
#####
这样说应该明白了吧
参考资料:http://zhidao.baidu.com/question/15041145.html