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

C++中break与continue的用法—跳出循环

2020-05-23 14:28:12
字体:
来源:转载
供稿:网友
不知道大家有没有注意到,在上一节讲述赛车问题的时候有这样一句话:如果没有发生意外的话,那么跑完了指定数量的圈数,比赛就结束了。实际上,赛车比赛是会发生各种情况的,比如要进维修站进行维修,或者引擎突然损坏不得不退出比赛。那么C++的“赛车比赛”会不会进维修站或者退出比赛了呢?

上一节向大家介绍了for可以省略循环继续的条件而使其不断循环,但如果我们放任这种无止尽的循环,则可能会导致电脑死机。所以我们必须强制停止比赛。这条语句就是break语句,其实我们在4.4的switch语句中已经遇到过了。下面我们还是在程序5.1.1的基础上作修改,看看break在for语句中是如何使用的。
#include "iostream.h"
int main()
{
   int sum=0;
   for (int i=1;;i++)
   {
      if (i>100) //若i大于100则退出循环
      {
         break;
      }
      sum=sum+i;
   }
   cout <<sum <<endl;
   return 0;
}

C++中break与continue的用法—跳出循环 这段代码的意思是,当i<=100的时候一直执行循环;一旦i>100了,则会运行到if语句里的break语句,于是强行中止了循环。以上这段代码可以由图5.2.1来表示。我们也不难发现,修改后的程序运行结果应该和程序5.1.1的运行结果一样。

那么,进维修站又是怎么一回事呢?

实际上进维修站并不是退出比赛,而是暂时绕开一段,然后重新进入赛道继续下一圈的比赛。那么绕开的赛道上的标牌是无法看到的。在C++的“赛车比赛”中,进维修站是绕开一些语句,重新开始下一次的循环。进维修站的语句是continue,下面我们来看一个程序:
(程序5.2.1)
#include "iostream.h"
int main()
{
   for (int i=0;i<12;i++)
   {
      cout <<'*';//输出星号
      if (i%2==0)
      {
         continue;
      }
      cout <<' ';//输出空格
   }
   cout <<endl;
   return 0;
}
运行结果: 
** ** ** ** ** **
在循环的执行过程中,如果i%2不等于0,即i为奇数的时候,则完成整个循环,输出一个星号和一个空格;如果i是个偶数,则跳过输出空格的语句,进行下一次循环。这个程序的运行情况可以由图5.2.2来描述。

试试看:
1、改写程序5.1.1,要求使用continue语句,使其输出1+3+5……+99的结果。

2、思考break和continue语句是否可能会影响循环的次数?为什么?
结论:break可能影响循环次数,而continue不会影响。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表