C++ for循环语句详解
实现代码块的重复执行,C++ 提供了多种循环结构,包括 while、do while 和本节讲的 for 循环语句。
for 循环语句的基本语法结构如下:
结合 for 循环的语法结构,它的执行过程是:
举个简单的例子(实例一):
整个循环过程中,变量 i 的值是递增的,当 i 的值为 10 时,此时 i<10 的值为 false,循环过程结束。
执行程序,运行结果为:
首先,如果不需要在循环开始时执行任何操作,可以省略表达式 1。例如,如果循环控制变量已在循环外部初始化,那么表达式 1 就可以省略。
举个简单的例子:
原则上,for 循环语句中的表达式 2 也是可以省略的。如果省略表达式 2,那么将无限次的执行循环体,除非在循环体内部使用 break 语句跳出循环。
例如:
当然,如果不需要在每次迭代后执行任何操作,可以省略表达式 3。例如:
我们也可以将 for 语句的 3 个表达式全部省略,例如:
注意,for 循环的三个表达式都是可选的,但它们之间的分号不能省略。大多数情况下,至少应包括表达式 2,以明确指定循环的终止条件。
举个简单的例子:
无论是处理常规的计数迭代,还是使用范围 for 循环遍历数组或者容器,for循环都是 C++ 程序员必备的工具之一。
for 循环语句的基本语法结构如下:
for (表达式 1; 表达式 2; 表达式 3) { // 循环体:当表达式 2 的值为 true 时执行的代码块 }
- 表达式 1:循环开始前执行的语句,常用来完成循环开始前的初始化工作;
- 表达式 2:循环的判断条件,当表达式的值为 true 时才执行循环体,否则就结束循环;
- 表达式 3:每次循环体执行完成后,都会执行一次这个表达式。
结合 for 循环的语法结构,它的执行过程是:
- 首先执行一次表达式 1;
- 判断表达式 2 的值,如果为 true,则进入第 3 步,否则结束循环;
- 执行循环体;
- 执行表达式 3,然后回到第 2 步。
举个简单的例子(实例一):
#include <iostream> int main() { for (int i = 0; i < 10; i++) { std::cout << i << " "; } return 0; }示例中 for 循环语句的执行过程是:
- 定义一个变量 i 并初始化它的值为 0;
- 判断 i<10 的值,如果为 true,则进入第 3 步,否则结束循环;
- 输出变量 i 的值;
- 执行 i++,然后回到第 2 步。
整个循环过程中,变量 i 的值是递增的,当 i 的值为 10 时,此时 i<10 的值为 false,循环过程结束。
执行程序,运行结果为:
0 1 2 3 4 5 6 7 8 9
for循环的灵活使用
for 语句中的 3 个表达式都是可以省略的,接下来给大家逐一探讨这些表达式的省略,并了解它们是如何影响循环行为的。首先,如果不需要在循环开始时执行任何操作,可以省略表达式 1。例如,如果循环控制变量已在循环外部初始化,那么表达式 1 就可以省略。
举个简单的例子:
int i = 0; for (; i < 10; i++) { std::cout << i << " "; }这里将变量 i 的初始化过程放到 for 循环的外面执行,执行过程和实例一中的 for 循环语句完全一样。
原则上,for 循环语句中的表达式 2 也是可以省略的。如果省略表达式 2,那么将无限次的执行循环体,除非在循环体内部使用 break 语句跳出循环。
例如:
for (;;) { // 无限循环 // ... break; // 退出循环 }
当然,如果不需要在每次迭代后执行任何操作,可以省略表达式 3。例如:
for (int i = 0; i < 10;) { std::cout << i << " "; i++; }和实例一中的 for 语句相比,i++; 从表达式 3 的位置移到了循环体的末尾,它们的执行过程是完全相同的。
我们也可以将 for 语句的 3 个表达式全部省略,例如:
for( ; ; ){ //循环体 }如果循环体中没有使用 break 跳出,那么它就是一个无限循环(死循环)。
注意,for 循环的三个表达式都是可选的,但它们之间的分号不能省略。大多数情况下,至少应包括表达式 2,以明确指定循环的终止条件。
C++11基于范围的for循环
在 C++ 11 新标准中,为 for 循环添加了一种全新的语法格式,如下所示:for (declaration : expression){ //循环体 }
- declaration:定义一个变量,它的类型是 experssion 序列中存储元素的类型;
- expression:表示要遍历的序列,比如事先定义好的普通数组或者容器。
举个简单的例子:
#include <iostream> int main() { int a[] = { 1,2,3,4,5 }; for (int i : a) { std::cout << i << " "; } return 0; }输出结果为:
1 2 3 4 5
总结
C++ 中的 for 循环提供了一种结构清晰,可读性更高的方法来执行有限次数的迭代,恰当使用 for 循环可以使代码更加整洁、高效和可维护。无论是处理常规的计数迭代,还是使用范围 for 循环遍历数组或者容器,for循环都是 C++ 程序员必备的工具之一。