可以重复执行一组操作的语句叫做“循环”,有时也叫作“迭代”。循环一般不能无限进行下去,所以会设置一个终止的判断条件。
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,然后执行语句,直到无数据为止.
暂无评论内容