C++中使用for循环

C++中使用for循环

for 语句是一种更复杂的循环,因为它允许您指定执行一次的初始化语句(通常用于初始化计数器)、 检查退出条件(通常使用计数器)并在每次循环末尾执行操作(通常是将计数器递增或修改其值)。
for 循环的语法如下:

for (initial expression executed only once;
     exit condition executed at the beginning of every loop;
     loop expression executed at the end of every loop)
{
    DoSomething;
}

for 循环让程序员能够定义并初始化一个计数器变量,在每次循环开头检查退出条件,在循环末尾修改计数器变量的值。
以下示例程序演示了一种使用 for 循环访问数组元素的高效方式:

#include 
using namespace std;

int main()
{
    const int ARRAY_LENGTH = 5;
    int myNums[ARRAY_LENGTH] = {0};

    cout << "Populate array of " << ARRAY_LENGTH << " integers" << endl;

    for (int counter = 0; counter < ARRAY_LENGTH; ++counter)
    {
        cout << "Enter an integer for element " << counter << ": ";
        cin >> myNums[counter];
    }

    cout << "Displaying contents of the array: " << endl;

    for (int counter = 0; counter < ARRAY_LENGTH; ++counter)
        cout << "Element " << counter << " = " << myNums[counter] << endl;

    return 0;
}

输出:

Populate array of 5 integers
Enter an integer for element 0: 365
Enter an integer for element 1: 31
Enter an integer for element 2: 24
Enter an integer for element 3: -59
Enter an integer for element 4: 65536
Displaying contents of the array:
Element 0 = 365
Element 1 = 31
Element 2 = 24
Element 3 = -59
Element 4 = 65536

分析:

以上示例程序包含两个 for 循环,分别位于第 10 和 18 行。第一个 for 循环帮助填充一个 int 数组的元素,而另一个帮助显示该数组的元素。这两个 for 循环的语法相同,都声明了索引变量 counter,用于访问数组中的元素。在每次循环末尾,这个变量都递增,以便在下一次循环时访问数组中的下一个元素。在 for 语句中,中间的表达式为退出条件,它将 counter 与 ARRAY_LENGTH 进行比较,检查在每次循环末尾递增后, counter 是否还在数组边界内。这也确保了 for 循环不会跨越数组边界。

注意:

用于帮助访问集合(如数组)元素的变量(如示例程序中的 counter)也被称为迭代器。
在 for 语句中声明的迭代器的作用域为 for 循环,因此在示例程序中,第二个 for 循环中声明的 counter 实际上是个新变量。

初始化语句、条件表达式以及修改变量的语句都是可选的, for 语句可以不包含这些部分,如以下程序所示:

#include 
using namespace std;

int main()
{
    for(char userSelection = 'm'; (userSelection != 'x'); )
    {
        cout << "Enter the two integers: " << endl;
        int num1 = 0, num2 = 0;
        cin >> num1;
        cin >> num2;

        cout << num1 << " x " << num2 << " = " << num1 * num2 << endl;
        cout << num1 << " + " << num2 << " = " << num1 + num2 << endl;

        cout << "Press x to exit or any other key to recalculate" << endl;
        cin >> userSelection;
    } 

    cout << "Goodbye!" << endl;

    return 0;
}

输出:

Enter the two integers:
56
25
56 x 25 = 1400
56 + 25 = 81
Press x to exit or any other key to recalculate
m
Enter the two integers:
789
-36
789 x -36 = -28404
789 + -36 = 753
Press x to exit or any other key to recalculate
x
Goodbye!

这与使用 while 循环的示例程序相同,唯一的差别在于第 6 行使用了 for 循环。这个 for 循环有趣的地方在于,它只包含初始化表达式和条件表达式,而省略了在每次循环末尾修改变量的语句。

注意:

for 循环的初始化表达式中,可初始化多个变量。对于程序清单 6.11 所示的 for 循环,如果在其中初始化多个变量,将类似于下面这样:
    for (int counter1 = 0, counter2 = 5; // initialize
         counter1 < ARRAY_LENGTH; // check
         ++counter1, --counter2) // increment, decrement
注意到新增的变量 counter2 被初始化为 5。
有趣的是,还可使用循环表达式在每次循环时都将其递减。

该文章会更新,欢迎大家批评指正。

推荐一个零声学院的C++服务器开发课程,个人觉得老师讲得不错,
分享给大家:Linux,Nginx,ZeroMQ,MySQL,Redis,
fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,
TCP/IP,协程,DPDK等技术内容
点击立即学习:C/C++后台高级服务器课程

你可能感兴趣的:(C++编程基础,c++)