C++(for)
C++ 中有多种形式的 for
循环,每种形式适合不同的应用场景。
1. 经典的 for
循环
这是 C++ 中最基础的循环类型,由三部分组成:初始化、条件、迭代表达式。
语法:
for (initialization; condition; increment) {
// code block
}
initialization
:在循环开始时执行一次。通常用于初始化循环计数器变量。condition
:每次迭代前进行检查,如果为真,则继续循环,如果为假,则退出循环。increment
:每次迭代后执行,通常用于更新循环计数器。
示例:
#include <iostream>
using namespace std;
int main() {
for (int i = 0; i < 5; ++i) {
cout << "i = " << i << endl;
}
return 0;
}
输出:
i = 0
i = 1
i = 2
i = 3
i = 4
2. 基于范围的 for
循环(C++11 引入)
基于范围的 for
循环允许您遍历数组或容器中的所有元素,而不需要显式管理循环计数器。它非常适合遍历 STL 容器(如 std::vector
)、C 风格数组等。
语法:
for (declaration : container) {
// code block
}
declaration
:用于声明遍历元素的变量。通常是一个引用或拷贝。container
:可以是数组或任何支持begin()
和end()
的容器。
示例:
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> numbers = {1, 2, 3, 4, 5};
for (int num : numbers) {
cout << num << " ";
}
cout << endl;
// 使用引用修改元素
for (int& num : numbers) {
num *= 2;
}
for (int num : numbers) {
cout << num << " ";
}
return 0;
}
输出:
1 2 3 4 5
2 4 6 8 10
3. 无限 for
循环
如果条件部分永远为真,或者没有条件部分,for
循环会变成无限循环。这在某些特定情况下非常有用,但通常需要结合 break
语句以终止循环。
语法:
for (;;) {
// code block
if (some_condition) {
break; // 跳出循环
}
}
示例:
#include <iostream>
using namespace std;
int main() {
int i = 0;
for (;;) { // 无限循环
cout << "i = " << i << endl;
if (i >= 5) {
break; // 跳出循环
}
i++;
}
return 0;
}
输出:
i = 0
i = 1
i = 2
i = 3
i = 4
i = 5
4. 嵌套 for
循环
for
循环可以嵌套使用,这通常用于遍历多维数组或处理复杂的算法,如矩阵运算等。
语法:
for (initialization1; condition1; increment1) {
for (initialization2; condition2; increment2) {
// nested code block
}
}
示例:
#include <iostream>
using namespace std;
int main() {
for (int i = 0; i < 3; ++i) {
for (int j = 0; j < 3; ++j) {
cout << "(" << i << ", " << j << ") ";
}
cout << endl;
}
return 0;
}
输出:
(0, 0) (0, 1) (0, 2)
(1, 0) (1, 1) (1, 2)
(2, 0) (2, 1) (2, 2)
5. 使用 continue
和 break
控制循环流
break
:用于立即退出循环,不再执行循环体中的其余部分。continue
:用于跳过当前迭代的剩余部分,直接进入下一次迭代。
示例(结合 continue
和 break
):
#include <iostream>
using namespace std;
int main() {
for (int i = 0; i < 10; ++i) {
if (i == 5) {
continue; // 跳过本次循环,直接进入下次迭代
}
if (i == 8) {
break; // 退出循环
}
cout << "i = " << i << endl;
}
return 0;
}
输出:
i = 0
i = 1
i = 2
i = 3
i = 4
i = 6
i = 7
总结
- 经典
for
循环:适合需要显式控制循环变量的情况。 - 基于范围的
for
循环:更简洁,适合遍历容器和数组。 - 嵌套
for
循环:用于处理多维数据。 - 无限
for
循环:在某些场景下用于等待条件或持续处理任务,注意使用break
语句控制循环的终止。
在实际编程中,选择合适的 for
循环形式能帮助编写更清晰和简洁的代码。