C++ for 循环

在计算机编程中,循环用于重复执行一段代码。

例如,假设我们想显示一条消息 100 次。那么,与其写 100 次打印语句,不如使用循环。

这只是一个简单的例子;通过有效地利用循环,我们可以在程序中实现更高的效率和复杂性。

C++ 中有 3 种类型的循环。

  • for 循环
  • while 循环
  • do...while 循环

本教程重点介绍 C++ for 循环。我们将在接下来的教程中学习其他类型的循环。


C++ for 循环

for 循环的语法是

for (initialization; condition; update) {
    // body of-loop 
}

这里,

  • 初始化 - 初始化变量,仅执行一次
  • 条件 - 如果为 true,则执行 for 循环的循环体
    如果为 false,则终止 for 循环
  • 更新 - 更新已初始化变量的值,并再次检查条件

要了解更多关于 条件 的信息,请查看我们关于 C++ 关系运算符和逻辑运算符 的教程。


C++ for 循环流程图

C++ for loop flowchart
C++ for 循环流程图

示例 1:打印数字 1 到 5

#include <iostream>

using namespace std;

int main() {
        for (int i = 1; i <= 5; ++i) {
        cout << i << " ";
    }
    return 0;
}

输出

1 2 3 4 5

这个程序的工作原理如下:

迭代 变量 i操作
第 1 次 i = 1 true 打印 1i 增加到 2
第 2 次 i = 2 true 打印 2i 增加到 3
第 3 次 i = 3 true 打印 3i 增加到 4
第 4 次 i = 4 true 打印 4i 增加到 5
第 5 个 i = 5 true 打印 5i 增加到 6
第 6 个 i = 6 false 循环终止

示例 2:显示文本 5 次

// C++ Program to display a text 5 times

#include <iostream>

using namespace std;

int main() {
    for (int i = 1; i <= 5; ++i) {
        cout <<  "Hello World! " << endl;
    }
    return 0;
}

输出

Hello World!
Hello World!
Hello World!
Hello World!
Hello World!

这个程序的工作原理如下:

迭代 变量 i操作
第 1 次 i = 1 true 打印 Hello World!i 增加到 2
第 2 次 i = 2 true 打印 Hello World!i 增加到 3
第 3 次 i = 3 true 打印 Hello World!i 增加到 4
第 4 次 i = 4 true 打印 Hello World!i 增加到 5
第 5 个 i = 5 true 打印 Hello World!i 增加到 6
第 6 个 i = 6 false 循环终止

示例 3:查找前 n 个自然数的和

// C++ program to find the sum of first n natural numbers
// positive integers such as 1,2,3,...n are known as natural numbers

#include <iostream>

using namespace std;

int main() {
    int num, sum;
    sum = 0;

    cout << "Enter a positive integer: ";
    cin >> num;

    for (int i = 1; i <= num; ++i) {
        sum += i;
    }

    cout << "Sum = " << sum << endl;

    return 0;
}

输出

Enter a positive integer: 10
Sum = 55

在上面的示例中,我们有两个变量 numsumsum 变量被赋值为 0num 变量被赋值为用户提供的值。

请注意,我们使用了 for 循环。

for(int i = 1; i <= num; ++i)

这里,

  • int i = 1:初始化 i 变量
  • i <= num:只要 i 小于或等于 num,循环就继续执行
  • ++i:每次迭代将 i 变量增加 1

i 变为 11 时,条件falsesum 将等于 0 + 1 + 2 + ... + 10


基于范围的 For 循环

在 C++11 中,引入了一种新的基于范围的 for 循环,用于处理 数组向量 等集合。其语法为

for (variable : collection) {
    // body of loop
}

在这里,对于 collection 中的每个值,for 循环都会执行,并将该值赋给 variable


示例 4:基于范围的 For 循环

#include <iostream>

using namespace std;

int main() {
  
    int num_array[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
  
    for (int n : num_array) {
        cout << n << " ";
    }
  
    return 0;
}

输出

1 2 3 4 5 6 7 8 9 10

在上面的程序中,我们声明并初始化了一个名为 num_arrayint 数组。它有 10 个元素。

在这里,我们使用了一个基于范围的 for 循环来访问数组中的所有元素。


C++ 无限 for 循环

如果 for 循环中的 condition 始终为 true,它将永远运行(直到内存已满)。例如,

// infinite for loop
for(int i = 1; i > 0; i++) {
    // block of code
}

在上面的程序中,condition 始终为 true,然后将无限次地运行代码。


另请阅读


在结束之前,让我们用 C++ for 循环的知识来检验一下!你能解决以下挑战吗?

挑战

编写一个函数来计算自然数的和。

  • 返回前 n 个自然数的和。
  • 自然数是从1开始的正整数。前 n 个自然数的和可以使用公式计算:sum = n * (n + 1) / 2
  • 例如,如果 n = 10,返回值应为 55
你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战