首页 > 编程 > C++ > 正文

C++教程:C++ for循环语句讲解

2020-05-23 14:28:20
字体:
来源:转载
供稿:网友
大家看过赛车的话都知道,赛车就是围绕着一个固定的跑道跑一定数量的圈数,如果没有发生意外,那么跑完了指定数量的圈数,比赛就结束了。

我们来设想一下赛车的实际情况,当比赛开始,赛车越出起跑线的时候,车子跑了0圈,然后车子开到赛道的某个地方,会看到车迷举着一块标牌。过一会儿,赛车跑完了一圈,这时候已跑圈数还没有达到比赛指定的圈数,所以比赛还要继续,车子还要继续跑……开到刚才那个地方,又看到一次车迷举的标牌……当赛车跑完第60圈,也就是最后一圈时,已跑圈数已经等于比赛所要求的圈数,比赛就结束了。

问车手一共看到了几次粉丝举的标牌呢?很显然,答案是60次。

如果我们把粉丝的标牌换成了语句cout <<”加油!” <<endl;,那么很显然,屏幕上应该会显示60次“加油!”。于是我们有了重复多次输出字符串的基本想法。可是,我们现在还缺少赛车呢,在C++中,是如何造出一辆赛车来的呢?

赛车里最有名的是Formular 1(一级方程式赛车),于是我们取Formular的前三个字母for作为造赛车的语句,其具体语法格式为:
for (比赛前的准备;比赛继续的条件;每跑一圈后参数的变化)
   语句块;


for语句称为循环语句,大括号内的语句块称为循环体,而这种赛车的结构在C++中称为循环结构。根据上面的语法格式,我们来描述一下前面所说的输出60次“加油!”的情况:
for (int i=0;i<60;i=i+1)
{
   cout <<”加油!” <<endl;
}

C++教程:C++ for循环语句讲解
我们在比赛开始前,创建一个整型变量i用于存放赛车已跑的圈数,并且为它赋初值为0,即比赛开始前已跑了0圈。比赛继续的条件是赛车还没跑到60圈,即当i>=60的时候,比赛应该立即中止。(设想如果将此处改成i<=60,赛车实际要跑几圈?)每跑完一圈以后,已跑圈数要增加1,所以i=i+1。而语句块中的内容相当于在跑道中看到的各种情况……(参见图5.1.1)
下面我们来看一个完整的for语句构成的程序:(程序5.1.1)
#include "iostream.h"
int main()
{
   int sum=0;
   for (int i=1;i<=100;i=i+1)
   {
      sum=sum+i;
   }
   cout <<sum <<endl;
   return 0;
}
运行结果:
5050

我们在循环之前,创建了两个变量,分别为sum和i。在循环语句中,我们习惯用诸如i,j,k之类的字母作为变量名,来控制循环的执行次数。这些变量又称为循环控制变量。而sum则表示和的意思,其作用是把一点一点的数值累加起来。我们来通过手工来模拟一下程序5.1.1的前三次循环:
创建变量sum=0→遇到for语句,创建变量i=1→判断i是否小于等于100→满足(i=1<100),于是执行循环→sum=sum+i,即sum=0+i=1→第一次循环完毕,i=i+1,即i=1+1=2→判断i是否小于等于100→满足(i=2<100),于是执行循环→sum=sum+i,即sum=1+i=3→第二次循环完毕,i=i+1,即i=2+1=3→判断i是否小于等于100→满足(i=3<100),于是执行循环→sum=sum+i,即sum=3+i=6→第三次循环完毕,i=i+1,即i=3+1=4……

通过三次循环,我们不难发现sum里存放的是1+2+3……的和。所以,循环100次以后输出了结果5050也在意料之中了。

算法时间:累加与循环控制变量
在循环结构中,累加是很常用的一种方法。累加分两种:常量累加和变量累加。常量累加就是类似i=i+1,即在自身的数值上每次递增1。这种方法一般用来记数,然后利用这个计数器作为条件帮助循环语句或分支语句做一些判断。变量累加一般是用于保存结果的,不管是1+2+3……+100还是1*2+2*3+3*4……+99*100都需要用到变量累加。变量累加一般和循环控制变量是有关系的,比如程序5.1.1中的累加值就是循环控制变量i,而1*2+2*3……中的累加值就是i*(i+1)了。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表