for循环的嵌套
1格式
for(表达式1;表达式2;表达式3)
{
for(表达式4;表达式5;表达式6)
{
语句块1;
}
语句块
}
2执行顺序
对表达1进行初始化,然后判断表达式2,如果返回真,则进入到内层for执行表达式4,再判断表达式5,如果返回真,则执行语句块1,然后执行表达式6,再到表达式5判断,直到返回假为止,再跳出内层循环到外层循环的表达式2判断,如果返回真,则再进入内层循环,执行循环直到内层循环条件为假时再到表达式3执行,再判断表达式2直到返回假为止,跳出循环
表达式1-----表达式2(如果为真)----表达式4----表达式5(如果为真)---语句块1----表达式6------表达式5(如果为真)------语句块1-----表达式6-----表达式5(如果为假)-----结束内层循环-----表达式2(如果为真)----再进入内层循环,直到内层循环结束----表达式3-----表达式2(如果为假)-----结束外层循环。
经典代码示例:
#include <stdio.h>
/*
打印实心菱形
*/
void main()
{
int i,j;
for(i=0;i<4;i++)
{
//打印上半空格
for(j=0;j<3-i;j++)
{
printf(" ");
}
//打印上半星
for(j=0;j<2*i+1;j++)
{
printf("*");
}
//打印下半空格
printf("\n");
}
for(i=0;i<3;i++)
{
for(j=0;j<1+i;j++)
{
printf(" ");
}
for(j=0;j<5-2*i;j++)
{
printf("*");
}
printf("\n");
}
}
#include <stdio.h>
/*
55乘法口决表
*/
void main()
{
int i,j;
for(i=0;i<9;i++)
{
for(j=0;j<i+1;j++)
{
printf("%dX%d=%d\t",j+1,i+1,(i+1)*(j+1));
}
printf("\n");
}
}