所谓for语句的嵌套就是多层for循环的使用,
成都创新互联公司一直通过网站建设和网站营销帮助企业获得更多客户资源。 以"深度挖掘,量身打造,注重实效"的一站式服务,以成都网站设计、网站建设、移动互联产品、全网营销推广服务为核心业务。10年网站制作的经验,使用新网站建设技术,全新开发出的标准网站,不但价格便宜而且实用、灵活,特别适合中小公司网站制作。网站管理系统简单易用,维护方便,您可以完全操作网站资料,是中小公司快速网站建设的选择。
举个二维数组赋值的例子,
int a[3][4]; //定义一个3行4列的二维数组
int i; //用来控制行
int j; //用来控制列
int tmp=1;
for(i=0;i3;i++) //该循环就是第一层循环,用来控制行号
{
for(j=0;i4;j++) //该循环就是第二层循环,用来控制列号
{
a[i][j]=tmp++;
}
}
//到这里就实现了二维数组的赋值操作
循环的过程是先执行第一个大循环for(i=0;i3;i++),此句中先给i赋值0,在判断条件i3是否成立赋值后的i=0了,所以条件成立,成立则做下面一条语句,就是for(j=0;j4;j++),同样这个循环还是先赋值j=0,在进行判断j4是否成立,成立就再做下一句。
此时scanf语句后面已经没有语句了,所以程序就会跳上去到第二个循环中,即for(j=0;j4;j++)这句话中,可能你会问为什么不是第一句
(因为在循环嵌套中只有循环体执行完成所以的任务后才执行下面的语句,就是for(j=0;j4;j++)
要全部执行完毕才能执行后面的语句。即j4条件为假时跳出)跳到for(j=0;j4;j++)这个循环体以后。就会自动加一,就是执行j++(注:在这个for里面的j=0不再执行),这个赋值过程只在开始时执行。所以
j
这个循环要执行到条件不满足时停止,即最后j的值要=4.。
这样
j
这个循环就结束了。结束后又跳到了第一句。因为第二个for是包含在第一个for
里的。只有第一个for
里包含的语句全部执行完后第一个for就再一次执行i++,i
变成了2,判断条件i3成立,就再执行下一句,所以下面的for(j=0;j4;j++)又要再一次执行。执行完后就在回到第一个for执行。
原理:
i=0,j
执行4次,给a[0][0],a[0][1],a[0][2],a[0][3]赋值
i=1,j
执行4次,给a[1][0],a[1][1],a[1][2],a[1][3]赋值
i=2,j
执行4次,给a[2][0],a[2][1],a[2][2],a[2][3]赋值
i=3跳出.
还有不懂再问
比如说for(i = 1;i=10;i++){for(j = 1; j=10;j++){.......}}在这个简单的循环嵌套中,要先执行内层循环,当i等于一时,j从一执行到十,然后返回执行i等于二,再执行一遍j从一到十。知道i等于十为止!!