第5.2章 – c++-流程控制语句(循环语句)

第5.2章 – c++-流程控制语句(循环语句)

可以重复执行一组操作的语句叫做“循环”,有时也叫作“迭代”。循环一般不能无限进行下去,所以会设置一个终止的判断条件。
C++中的循环语句,有while、do while和for三种。

while

while只需要给定一个判断条件,只要条件为真,就重复地执行语句。形式如下:

while (条件)
{
语句
}


一般来说,用来控制while循环的条件中一定会包含变量,通常叫做“循环变量”;而它或者在条件中变化,或者在循环体中变化,这样才能保证循环能够终止退出。

比如我们可以用一个循环输出10次“Hello World”,并且打印出当前循环次数:

#include<iostream>
using namespace std;

int main()
{
    cout << "循环开始...\n" << endl;

    int i = 1;
    while (i <= 10)
    {
        cout << "Hello World!" << endl;
        cout << "现在是第" << i << "次循环\n" << endl;
        ++i;
    }

    cout << "循环结束!" << endl;

    cin.get();
}

do while

do while和while非常类似,区别在于do while是先执行循环体中的语句,然后再检查条件是否满足。所以do while至少会执行一次循环体。

do while语法形式如下:

do
语句
while (条件);

for

通过while和do while可以总结出来,一个循环主要有这样几个要素:

  • 一个条件,用来控制循环退出;
  • 一个循环体,用来定义循环要执行的操作;

而一般情况下,我们都是通过一个循环变量来控制条件的,这个变量需要随着循环迭代次数的增加而变化。while和do while的循环变量,都是在循环体外单独定义的。

for是用法更加明确的循环语句。它可以把循环变量的定义、循环条件以及循环变量的改变都放在一起,统一声明出来。

(1)经典for循环

for循环的经典语法形式是:

for (初始化语句; 条件; 表达式)
语句

关键字for和它后面括号里的部分,叫做“for语句头”。

for语句头中有三部分,用分号分隔,主要作用是:

  • 初始化语句负责初始化一个变量,这个变量值会随着循环迭代而改变,一般就是“循环变量”;
  • 中间的条件是控制循环执行的关键,为真则执行下面的循环体语句,为假则退出。条件一般会以循环变量作为判断标准;

  • 最后的表达式会在本次循环完成之后再执行,一般会对循环变量进行更改;

这三个部分并不是必要的,根据需要都可以进行省略。如果省略某个部分,需要保留分号表示这是一个空语句。

我们可以用for循环语句,实现之前输出10次“Hello World”的需求:

#include<iostream>
using namespace std;

int main()
{
    for (int i = 1; i <= 10; i++)
    {
        cout << "Hello World!" << endl;
        cout << "现在是第" << i << "次循环!\n" << endl;
    }

    cin.get();
}

范围for循环

C++ 11新标准引入了一种更加简单的for循环,这种语句可以直接遍历一个序列的所有元素。这种for循环叫做“范围for循环”。语法形式如下:

for (声明: 序列表达式)
语句

这里for语句头中的内容就很简单了,只需要声明一个变量,后面跟上一个冒号(注意不是分号),再跟上一个序列的表达式就可以了。所谓“序列”,其实就是一组相同类型的数据对象排成了一列来统一处理;所以这个声明的意思,其实就是从序列中依次取出所有元素,每次都赋值给这个变量。

所以范围for循环的特点就是,不需要循环变量,直接就可以访问序列中的所有元素。

    // 范围for循环
    for (int num : {3, 6, 8, 10})
    {
        cout << "序列中现在的数据是:" << num << endl;
    }

这里用花括号把一组数括起来,就构成了最简单的序列:{3, 6, 8, 10}。后面将要介绍的数组,以及vector、string等类型的对象,也都是序列。

上述代码解析就是,循环次数为数据序列的数量,依顺序将值赋予给num,然后执行语句,直到无数据为止.

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容