C++ for循环的用法(附带实例)
循环结构中,程序会重复地执行同一段代码,直到条件不再满足,或者遇到强行跳出语句。循环结构可以使程序代码更加简洁,减少冗余,是程序设计人员必须掌握的。
C++ 提供了 3 种循环结构,包括 while 循环、do while 循环和 for 循环。for 循环语句的一般形式如下:
for 循环的执行过程如下,其执行流程如下图所示:

图 1 for循环执行过程
【实例】计算 1~10 的累加和。
计算 1~10 累加和需要有一个循环控制变量 i 和一个记录累加和的变量 sum。for 循环的 3 个表达式中:
具体代码如下:

图 2 for循环计算 1~10 的累加和
程序运行结果为:
for 循环之所以有 3 个表达式,其实就是将 while 或 do while 循环中有关循环控制变量赋初值(i=1;)、循环控制变量自增变化(i++;)的两处代码也都合并到了 for 后的括号中。因此,整体代码看起来更加紧凑、灵活。
初学 for 语句时,读者很容易误用逗号去分隔 3 个表达式。例如:
使用 for 循环的注意事项如下:
1) 变量一般声明在 for 循环语句外,也可以直接在表达式 1 中声明变量。例如:
2) for 循环中的表达式 1、表达式 2、表达式 3 都可以省略,但分号必须保留。
① 省略表达式 1 时,需要在 for 循环外声明循环控制变量 i 并赋初值。例如:
② 省略表达式 2,也就是省略了循环终止条件,如果不做其他处理,程序将陷入死循环。死循环对程序的危害很大,一定要避免。
③ 省略表达式 3 时,需要在 for 循环体中加入修改变量的语句。
④ 省略表达式 1 和表达式 3 后,就和 while 循环一样了。例如:
C++ 提供了 3 种循环结构,包括 while 循环、do while 循环和 for 循环。for 循环语句的一般形式如下:
for(表达式1;表达式2;表达式3){ 语句块 }
- “表达式1”仅在第一次循环时执行,通常是一个赋值表达式,用来对循环变量进行初始化赋值;
- “表达式2”是一个关系表达式,又称为循环条件,决定了是否还要继续下次循环;
- “表达式3”通常是一个带有自增或自减操作的表达式,用于使循环条件逐渐变得“不成立”。
for 循环的执行过程如下,其执行流程如下图所示:

图 1 for循环执行过程
- 1) 先执行“表达式 1”;
- 2) 再执行“表达式 2”,如果其值为真(非 0),则执行循环体,否则结束循环;
- 3) 执行完循环体后,再执行“表达式 3”;
- 4) 重复执行步骤 2) 和 3) ,直到“表达式2”的值为假,就结束循环。
【实例】计算 1~10 的累加和。
计算 1~10 累加和需要有一个循环控制变量 i 和一个记录累加和的变量 sum。for 循环的 3 个表达式中:
- “表达式 1”对循环控制变量 i 赋初值;
- “表达式 2”给出循环条件 i<=10;
- “表达式 3”实现循环控制变量 i 由 1 到 10 的递增变化。
具体代码如下:
#include <iostream> using namespace std; int main() { int sum = 0; int i; for (i = 1; i <= 10; i++) // for 循环语句,一行代码起到了 while、do...while 循环中 3 行代码的功效 sum += i; // 进行累加求和 cout << "the result : " << sum << endl; return 0; }程序的执行流程如下图所示:

图 2 for循环计算 1~10 的累加和
程序运行结果为:
the result : 55
for 循环之所以有 3 个表达式,其实就是将 while 或 do while 循环中有关循环控制变量赋初值(i=1;)、循环控制变量自增变化(i++;)的两处代码也都合并到了 for 后的括号中。因此,整体代码看起来更加紧凑、灵活。
初学 for 语句时,读者很容易误用逗号去分隔 3 个表达式。例如:
for(i=1,i<100,i++)注意,这里代表的是 3 个语句,因此要用分号进行分隔。
使用 for 循环的注意事项如下:
1) 变量一般声明在 for 循环语句外,也可以直接在表达式 1 中声明变量。例如:
int main() { for(int i = 0, sum = 0; i <= 10; i++) // 在循环语句中声明变量 sum += i; cout << sum << endl; return 0; }
2) for 循环中的表达式 1、表达式 2、表达式 3 都可以省略,但分号必须保留。
① 省略表达式 1 时,需要在 for 循环外声明循环控制变量 i 并赋初值。例如:
int main() { int sum = 0; int i = 0; // 将循环控制变量 i 拿到循环语句外声明并赋初值 for(; i <= 10; i++) sum += i; cout << sum << endl; return 0; }如果在循环外声明了变量 i 却忘记赋初值,程序能通过编译,但运行结果通常是错误的。因为编译器会为变量赋一个默认初值(一般为一个比较大的负数),从而导致程序运行结果不正确。
② 省略表达式 2,也就是省略了循环终止条件,如果不做其他处理,程序将陷入死循环。死循环对程序的危害很大,一定要避免。
③ 省略表达式 3 时,需要在 for 循环体中加入修改变量的语句。
④ 省略表达式 1 和表达式 3 后,就和 while 循环一样了。例如:
int main() { int sum = 0; int i = 0; for(; i <= 10;) { sum = sum + i; i++; } cout << "the result :" << sum << endl; return 0; }