for循环嵌套
一 、课前知识提前学习
条件分支嵌套结构
条件分支嵌套结构是指在条件分支语句的一个分支语句中又包含了其它条件分支语句。if语句嵌套既可以出现在if语句块中,也可以出现在else语句块中,一般形式如图1所示。
图1 多种if语句嵌套形式
多重if语句嵌套容易产生二义性。例如:
if(x>1) /*容易引起二义性的书写格式*/
if (x>10) y=1;
else y=2;
上例的书写格式将else与第一个if放在同一层次上,企图两者相配对。但实际上,else与哪个if配对不取决于程序的书写格式,而取决于C语言的语法规定:从最内层开始,else总是与其上面相邻最近的无else的if配对。所以,上例中,由于else与第2个if相邻最近,实际else是与第2个if配对。
循环嵌套结构
一个循环语句的循环体内包含另一个完整的循环结构,称为循环的嵌套。被嵌套的循环还可以再嵌套循环,形成多重循环嵌套结构。while、do…while、for可以互相嵌套。每一层循环体都应该用{}括起来,即使循环体只有一条语句也尽量不省略{},以防止二义性操作。
多层循环嵌套结构中嵌套循环的执行次序是:外循环的循环变量每变化一次,都要完整地执行一遍内循环的所有操作。
对于双重循环,内层循环被执行的次数应为:内层次数×外层次数。使用循环嵌套结构时,注意内层循环与外层循环的循环控制变量不能相同。例如:
for(i=1;i<=10;i++)
for(i=2;i<=20;i++)/*错误*/
{……}
但是,同一层次上的不同循环结构的循环控制变量可以相同。例如:
for(i=1;i<=10;i++)
{……}
for(i=1;i<=10;i++)
{……}