C 语言中的 for 是关键字,作用是三段式计数循环,属于循环控制语句,适合已知循环次数的场景,标准语法格式:
for(表达式1; 表达式2; 表达式3)
{
循环体;
}
三个表达式用分号隔开,执行顺序固定:表达式 1 初始化(只执行一次)→ 表达式 2 条件判断 → 条件为真执行循环体 → 执行表达式 3 迭代更新 → 回到表达式 2 继续判断,直到表达式 2 为假退出循环,这个是 C 语言 for 最核心知识点,也是笔试高频考点,for 相比 while,把初始化、条件、更新写在同一行,代码更加紧凑,同时 C 语言 for 的三个表达式都可以省略,这个是它很灵活的特点,也是初学者容易踩坑的地方。
各表达式含义清单
1 表达式 1:初始化,一般给循环变量赋初值,整个循环只执行一次
2 表达式 2:循环条件,是判断表达式,结果为非 0 代表真,0 代表假
3 表达式 3:迭代更新,循环体结束之后执行,一般是 i++ i-- 这类自增自减
4 循环体:需要重复执行的代码,如果只有一行代码,大括号可以省略
基础代码示例
include
int main()
{
// 输出0~4
for(int i=0; i<5; i++)
{
printf("%d ", i);
}
return 0;
}
特殊变体用法
| 写法 | 说明 |
|---|---|
| for (; 条件;更新) | 省略表达式 1,初始化写在 for 外面 |
| for (初始化;; 更新) | 省略表达式 2,相当于条件恒真,变成死循环,需要内部 break 退出 |
| for( ; ; ) | 三个全部省略,等价 while (1) 死循环 |
| 嵌套 for 循环 | for 里面再写 for,常用于二维数组、矩阵打印 |
循环控制关键字
- break:立即跳出当前这一层 for 循环,不再继续循环
- continue:跳过本轮剩下循环体代码,直接执行表达式 3 迭代更新,进入下一轮判断
学习理解步骤
第一步,记住标准格式,理解三段表达式分工和执行顺序
第二步,写基础循环,练习打印数字、累加求和这类经典例题
第三步,学习省略表达式、嵌套 for 循环
第四步,掌握 break 和 continue 在 for 循环里面的执行差别
第五步,区分 for 循环和 while 循环,知道 for 适合已知循环次数,while 适合不确定循环次数场景
深度补充要点
注意 C 语言标准,C89 标准不能在 for 括号里面定义 int i,也就是for(int i=0;...)是 C99 才支持,老编译器会报错,需要提前在外面定义 i。另外 for 循环表达式 3 可以写复杂语句,不一定只是自增,也可以写 i+=2,实现步长为 2 的循环。死循环 for (;;) 在单片机、嵌入式代码非常常用,内部依靠 break 退出。
【常见问题】
问题 1 C 语言 for 循环里面三个分号可以省略吗
回答 1 表达式可以省略,但是两个分号必须保留,for (;;) 是合法写法,代表无条件死循环。
问题 2 C 语言 for 里面 continue 还会执行 i++ 吗
回答 1 会,continue 跳过循环体剩余代码,但是表达式 3 也就是 i++ 仍然会执行,然后进入下一轮条件判断。
问题 3 C 语言 for 和 while 该怎么选择
回答 1 已知循环次数优先用 for,循环次数不确定,依靠条件终止优先用 while,两者可以互相转换。
【免责申明】
本内容为 C 语言基础知识讲解,语法以 C 语言标准规范为准,不同编译器扩展特性可能存在差异。


