码迷,mamicode.com
首页 > 编程语言 > 详细

C++中break语句、continue语句和goto语句区别

时间:2020-08-01 12:37:23      阅读:71      评论:0      收藏:0      [点我收藏+]

标签:ret   cout   c++   auto   for循环   作用   直接   ++i   nbsp   

浅谈跳转语句一二三

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语句
}

 

C++中break语句、continue语句和goto语句区别

标签:ret   cout   c++   auto   for循环   作用   直接   ++i   nbsp   

原文地址:https://www.cnblogs.com/wzw0625/p/13413553.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!