嵌套循环通常是外面一层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=21*2=2 2*2=41*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;
}
只需要记住 外层执行一次,里层执行一周
输出: