循环控制的基本概念
在编程中,循环控制是让一段代码重复执行的关键手段。比如你每天上班都要打卡,系统后台可能就用了一个循环去检查每个员工是否已签到。这种重复性任务交给程序处理,既高效又不容易出错。
常见的循环结构有 for 循环、while 循环和 do-while 循环。不同语言写法略有差异,但逻辑本质相同。
for 循环:适合已知次数的重复
当你清楚要执行多少次时,for 循环最直观。比如你想打印 1 到 5 的数字,可以这样写:
for (int i = 1; i <= 5; i++) {
printf("%d
", i);
}这里的 i 就像一个计数器,每轮加 1,直到满足条件为止。就像你坐电梯从 1 楼升到 5 楼,每层停一次报个数。
while 循环:条件成立就继续
有些情况你不知道要跑几轮,只关心某个状态是否持续。比如下载文件时,只要网络还在传数据,就得一直显示进度条。
int downloaded = 0;
int total = 100;
while (downloaded < total) {
downloaded += 10; // 每次下载10单位
printf("已下载:%d%%
", downloaded);
}这段代码会不断更新进度,直到下完为止。它不像 for 那样预设步数,而是靠判断条件来决定是否继续。
跳出或跳过循环:灵活控制流程
有时候你想中途退出,或者跳过某一轮。这时候 break 和 continue 就派上用场了。
比如你在遍历用户列表发通知,遇到无效账号就跳过;如果发现系统异常,直接终止发送。
for (int i = 0; i < 10; i++) {
if (i == 3) {
continue; // 跳过第3个
}
if (i == 8) {
break; // 到第8个就停止
}
printf("发送给用户 %d
", i);
}结果会输出用户 0 到 7,唯独跳过了 3,并且没走到 8 及以后。
嵌套循环:处理二维场景
当你面对表格、棋盘这类结构,经常需要两层甚至更多层循环。比如打印一个 3×3 的乘法表:
for (int i = 1; i <= 3; i++) {
for (int j = 1; j <= 3; j++) {
printf("%d * %d = %d
", i, j, i*j);
}
}外层控制行,内层控制列,就像扫地机器人来回清扫房间一样,一行一行覆盖完整个区域。
掌握这些基本模式后,你会发现很多复杂问题都可以拆解成“重复做点什么”的组合。关键在于理清边界条件和变化趋势,别让循环停不下来——那可就像洗衣机卡住一直转,谁都受不了。