zoukankan      html  css  js  c++  java
  • C++中break语句、continue语句和goto语句区别

    浅谈跳转语句一二三

    C++中总共提供了四种跳转语句 ,分别是break、continue、goto和return语句。

    (1)break语句

    break语句负责终止离他最近的while、do while和for循环以及switch语句,并从这些语句之后的第一条语句开始继续执行。需要注意的是break语句只能出现在迭代语句或者switch语句内部,即break语句的作用范围是仅限于最近的循环或者switch。

    举例说明:

    #include <iostream>
    
    using namespace std;
    
    int main()
    {
        string buf;
        while(cin >> buf && !buf.empty())
        {
            switch(buf[0])
            {
            case '-':
                for(auto it = buf.begin(); it != buf.end(); ++it) //处理到第一个空白为止
                {
                    if(*it == ' ')
                        break; //负责终止连字符case标签后面的for循环,即离开for循环
                }
            case '+':
                cout << "this is test break !" << endl;;
                break; //控制权交到这里,终止整个switch语句,即跳到switch外
            default:
                cout << "the other test break !" << endl;
                break;
            }
        }
        return 0;
    }

    (2)continue语句

    continue语句终止最近的循环中的当前迭代并立即开始下一次迭代,类似于break语句,continue语句只能出现在for、while和do while循环的内部,或者嵌套在此类循环里的语句以及块的内部。和break语句相似的是,出现在嵌套循环中的continue语句也仅作用于离他最近的循环。和break语句不同的是,只有当switch语句嵌套在迭代语句内部时,才能在switch里使用continue。continue语句中断当前的迭代,但是仍然继续执行循环。对于while或者do while语句来说,继续判断条件的值,而对于for循环而言,则执行序列中的下一次迭代。

    举例说明:

    string buf;
    while(cin >> buf && !buf.empty())
    {
         if(buf[0] != '-')
                 continue; //接着读取下一次输入
         cout << buf[0] << endl;//程序执行到此处表明当前的输入是以下划线开始的 
    }

    (3)goto语句

    goto语句的作用主要是从goto语句无条件跳转到同一函数的另一条语句,需要注意的是goto语句和要转向的标签语句必须位于同一个函数之内,但在一般写代码中,不经常使用goto语句,因为它使得程序既难立即又难修改。

    举例来说:

    string buf;
    int len = 10;
    if(len < buf.size())
    {
           goto lenerr;
    }
    lenerr: return;

    (4)return语句

    return语句终止当前正在执行的函数并将控制权返回到调用该函数的地方,常用的return语句有两种形式,即带返回值的return语句,如return 0以及不带返回值的return语句,即return;没有返回值的return语句只能用在返回类型是void的函数中,当然了,返回void的函数中不一定非要用return语句,因为在这类函数中的最后一句会隐式执行return。对于有返回值的return语句,只要该函数的返回类型不是void,则该函数内的每条return语句必须返回一个值。return语句返回值类型必须与函数返回类型相同,如果函数返回类型是bool类型,则return true或者return false,如果返回类型是整型int则返回相应的整型变量,如return 0。

    举例说明:

    void swap(int  &v2, int &v2)
    {
        if(v1 == v2)
              return; //如果两个值相等,则不需要交换,直接退出函数;如果不相等则执行后面语句,交换彼此的值
        int tmp = v2; 
        v2 = v1;
        v1 = tmp;
       //此处无须显示执行return语句
    }
    ----------------------------------- 心之所向,素履所往;生如逆旅,一苇以航。 ------------------------------------------
  • 相关阅读:
    机器学习十大算法之EM算法
    如何利用OpenSSL生成证书
    2018中国云原生用户大会:网易云爆料完整微服务的研发过程
    漫话中文分词
    10分钟快速构建汽车零售看板
    聊一聊整车厂的那些事——售后配件业务
    网易有数的“正确”使用方式——洞察数据中隐藏的故事
    深入浅出“跨视图粒度计算”--3、EXCLUDE表达式
    深入浅出“跨视图粒度计算”--2、INCLUDE表达式
    深入浅出“跨视图数据粒度计算”--1、理解数据的粒度
  • 原文地址:https://www.cnblogs.com/wzw0625/p/13413553.html
Copyright © 2011-2022 走看看