一、“无限”循环
1.使用场景
此无限循环并不是指的是死循环哦,而是一个如果不人为停止那么就会无限次执行循环体部分的循环。例如,在开发中,有时并不确定需要循环多少次,需要根据循环体内部某些条件,来控制循环的结束(使用break)。**如果此循环结构不能终止,则构成了死循环!**开发中要避免出现死循环。
2.语法格式
while(1)
// 或者
for(;;)
3.爱你到永远
// 方式一
for(;;)
{
printf("我爱你!");
}
// 方式二
while(1)
{
printf("我爱你!");
}
4.从键盘录入不确定个整数
题目:从键盘读入个数不确定的整数,并判断读入的正数和负数的个数,输入为0时结束程序。
int main() {
int positiveNumber = 0;//统计正数的个数
int negativeNumber = 0;//统计负数的个数
int num; //记录输入的整数
while(1){ //for (;;){
printf("请输入一个整数(输入为0时结束程序):");
scanf("%d", &num);
if (num > 0) {
positiveNumber++;
} else if (num < 0) {
negativeNumber++;
} else {
printf("程序结束\n");
break;
}
}
printf("正数的个数为:%d\n", positiveNumber);
printf("负数的个数为:%d\n", negativeNumber);
return 0;
}
二、嵌套循环
1.什么是嵌套循环?
所谓的嵌套循环,就是在一个循环中又写了一个循环,这个称之为两层循环。当然了,第二层循环中还可以再写一个循环,这样就变成了三层循环。不过,实际开发中,我们最多见到的嵌套循环是两层。一般不会出现超过三层的嵌套循环。如果将要出现,一定要停下来重新梳理业务逻辑,重新思考算法的实现,控制在三层以内。否则,可读性会很差。
- 实质上,
嵌套循环就是把内层循环当成外层循环的循环体
。只有当内层循环的循环条件为false(值为0)时,才会完全跳出内层循环,才可结束外层的当次循环,开始下一次的外层循环。- 设外层循环次数为
m
次,内层为n
次,则内层循环体实际上需要执行m*n
次。
2.九九乘法表
void fun1() {
for (int i = 1; i <= 9; ++i) {
for (int j = 1; j <= i; ++j) {
// printf("%d * %d = %d\t", i , j, i * j);
printf("%d * %d = %-2d ", i, j, i * j);
}
printf("\n");
}
}