C++ Primer第五章②

C++ Primer

第五章 语句

循环语句

它重复执行操作直到满足某个条件才停下来。while和for语句在执行循环体之前检查条件,do while语句先执行循环体,然后再检查条件。

while语句

只要条件为真,while语句就重复地执行循环体

//求1-10的和
int i =1, sum = 0;
while(i<=10)
{
    sum += i;
    ++i; //也可以这么写 sum += i++;看着是不是很装逼?
}

传统for语句

//求1-10的和
int sum = 0;
for(int i = 1; i<=10; ++i)
{
    sum += i;
}

是不是超级简单啊,也很常用的。

范围for语句

我们之前也写过,这里举个例子吧(感觉这个新式的for语句也是比原来更偷懒的方法,不过它只能遍历所有的,当然遍历所有比较常用,所以C++设计者搞了这个语法)

//把vector的所有元素翻倍
vector<int> = {0, 1, 2, 3};
for(auto &r : v) //别忘了这里是引用哦,没有引用的就不会改原来容器中的值了
{
    r *= 2;
}

do while语句

do while和while的唯一区别是:do while语句先执行循环体后检查条件,不管条件如何,我们都至少执行一次循环对吧。 值得注意的是,do while先执行语句后判断条件,所以不允许在条件部分定义变量。我一般不用这个,我就不高兴举例子了。

跳转语句

C++语言中提供了四种跳转语句:

  • break 跳出一层循环
  • continue 结束当前次迭代,继续下一次
  • goto 想去哪儿去哪儿,跳到标签那儿
  • return 以后介绍 下面看代码理解:
    //while
    while()
    {
      while()
      {
          break;
      }
      //break跳到这,一层循环
    }
    //continue
    //统计5-10的和,程序很烂,纯粹为了让你看懂continue的逻辑
    int i = 1, sum = 0;
    while(i<10)
    {
      if(i<5)
      {
          continue;
      }
      sum += i;
    }
    
    详细介绍一下goto,因为它的自由度最高,所以相应的也会有很多规定:goto语句和控制权转向的那条带标签的语句必须位于同一个函数之内。 请一定要慎用goto,因为它太强了,会打乱很多逻辑,像我一般能不用就不用,来个错误示范:
    goto end;
    int a = 10;
    end:
      a = 2;
    //错了,前面goto的话a根本没定义
    
    再来个你觉得错的,实际上对的的例子:
    begin:
      int sz = get_size();
      if(sz <= 0)
      {
          goto begin;
      }
    
    可能你会觉得跳到begin后会重复定义sz,但其实不会,因为C++规定,goto跳回到变量定义之前意味着系统将销毁该变量然后重新创建它。
全部评论

相关推荐

frutiger:逆天,我家就安阳的,这hr咋能说3k的,你送外卖不比这工资高得多?还说大厂来的6k,打发叫花子的呢?这hr是怎么做到说昧良心的话的
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务