嵌套循环通常是外面一层for循环,里面n层for循环
代码:
int main1601()
{
//外层执行一次,内层执行一周
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < 5; j++)
{
printf("i=%d,j=%d\n",i,j);
}
}
system("pause");
return EXIT_SUCCESS;
}
解释:
这里的代码从外往里运行,先是i=0,当循环运行到第二层循环时,往里运行。
这时,j=0,条件j<5,j++。输出为i=?,j=?。
第一次循环时都满足条件,输出为i=0,j=0,里层的循环满足条件,迭代循环,输出为i=0,j=1......以此类推,当里层循环不满足条件时,跳出里层循环,这时外层循环进行迭代。往里运行,输出为i=1,j=0......
要点:嵌套循坏,外层执行一次,里层执行一周
输出:
我们来做些练习:
练习一:电子时钟
写一个时钟案例,秒真转一圈则分针+1,分针转一圈则时针+1,秒最大60,分最大60,时最大24
代码:
#include<windows.h>
int main()
{
for (int i = 0; i < 24; i++)
{
for (int j = 0; j < 60; j++)
{
for (int k = 0; k < 60; k++)
{
//清屏
system("cls");
printf("%02d:%02d:%02d\n",i,j,k);
/*
单次循环结束 休眠1s再迭代
需要使用windows库中的sleep()函数
*/
Sleep(1000);//单位为毫秒
}
}
}
return 0;
}
输出的%02d意思是:输出的整数宽度为2,如果整数的位数不足2位,则在左边用0填充。
其他的疑难杂症可以自己想想,看看注释,不明白可以评论或私信
输出:
练习二:九九乘法表
输出1*1=1
1*2=2 2*2=4....
以此类推
代码:
int main()
{
/*
再写一个案例:九九乘法表
1*1=2
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
*/
for (int i = 1; i <= 9; i++)
{
for (int j = 1; j <= i; j++)
{
printf("%d*%d=%d\t",j,i,i*j);
}
printf("\n");
}
return 0;
}
只需要记住 外层执行一次,里层执行一周
输出: