关于for语句及输入

来源:百度知道 编辑:UC知道 时间:2024/07/03 03:00:44
for语句在有的程序有{}而有的程序没有?
如:
for(i=0;i<10;i++)
for(j=0;j<10;j++)这个for语句没有.
又如:
for(i=0;i<10;i++)
{for(j=0;j<10;j++)这个有{}号
。。。。。。。}我见多数是在输入二维数组用的.

如果要输入一个二维数组:
for(i=0;i<3;i++)这个for语句是怎么执行的?
for(j=0;j<4;j++)是先执行第1个for语句后再执行第2个for语句.
scanf("%d",a[i][j]);还是同时两个语句执行.

本人也来解释下其中道理啊!
因为C语言是以分号";"为语句结束标记的,所以无论是什么执行什么语句都是遇到分号,这个语句便执行完毕。
for语句也是如此,循环体之所以要加大括号就是因为要循环的语句有多句,大括号括起来的话,就组成了复合语句了。
下面举例说明:
for(i=0;i<3;i++)
for(j=0;j<4;j++)
scanf("%d",&a[i][j]);
该循环就是每次遇到scanf语句后的分号便结束一次循环,然后转而执行下次循环。
for(i=0;i<3;i++)
for(j=0;j<4;j++)
{
scanf("%d",&a[i][j]);
sum+=a[i][j];
}
此句便是执行复合语句了!

只有一条语句(只有一个分号)时就没有(也可以有){},当循环中有多条语句时就有{}。
下面的二维数组的输入顺序是a[0][0],a[0][1],a[0][2],a[0][3]
a[1][0],a[1][1],a[1][2],a[1][3]
a[2][0],a[2][1],a[2][2],a[2][3]

一开始先执行第一个,如一开始i=0时, i<3为真,执行循环体内的语句,而此时用刚好是一个for循环所以要执行完里面的for再返回上一个执行.
至于要不要加{}是由for循环里的多少条语句决定的,如果只有一条,则不用,只有复合语句才用加.

for后面有多个执行语句时用括号,不用括号的话,它只能控制到下面语句第一个;时就不执行下面的语句了,如
for(i=0;i<4;i++){i=*i;z=*i;}不用括号的话它只执行i=*i,而不再执行z=*i
对a[i][j]由两个for(i=0;i<3;i++)for(j=0;j<4;j++)语

句中i,j的初始赋值决定,是同时执行的。即如果初始i=0,j=0那么a[i]