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. 使用 continuebreak 控制循环流

  • break:用于立即退出循环,不再执行循环体中的其余部分。
  • continue:用于跳过当前迭代的剩余部分,直接进入下一次迭代。

示例(结合 continuebreak):

#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 循环形式能帮助编写更清晰和简洁的代码。



posted @ 2024-09-05 13:57  做梦当财神  阅读(334)  评论(0编辑  收藏  举报