【C++基础】第三十二课:跳转语句

【C++基础】系列博客为参考《C++ Primer中文版(第5版)》C++11标准)一书,自己所做的读书笔记。

1.前言

C++语言提供了4种跳转语句:break、continue、goto和return。

return语句后续博客会有介绍,在此不再详述。

2.break语句

break语句负责终止离它最近的while、do while、for或switch语句,并从这些语句之后的第一条语句开始继续执行。

break语句只能出现在迭代语句或者switch语句内部(包括嵌套在此类循环里的语句或块的内部)。break语句的作用范围仅限于最近的循环或者switch。

3.continue语句

continue语句终止最近的循环中的当前迭代并立即开始下一次迭代。continue语句只能出现在for、while和do while循环的内部,或者嵌套在此类循环里的语句或块的内部。

❗️和break语句类似的是,出现在嵌套循环中的continue语句也仅作用于离它最近的循环。和break语句不同的是,只有当switch语句嵌套在迭代语句内部时,才能在switch里使用continue。

continue语句中断当前的迭代,但是仍然继续执行循环。对于while或者do while语句来说,继续判断条件的值;对于传统的for循环来说,继续执行for语句头的expression;而对于范围for语句来说,则是用序列中的下一个元素初始化循环控制变量。

4.goto语句

goto语句的作用是从goto语句无条件跳转到同一函数内的另一条语句。goto语句的语法形式是:

goto label;

其中,label是用于标识一条语句的标示符。带标签语句是一种特殊的语句,在它之前有一个标示符以及一个冒号:

end: return;//带标签语句,可以作为goto的目标

标签标示符独立于变量或其他标示符的名字,因此,标签标示符可以和程序中其他实体的标示符使用同一个名字而不会相互干扰:

int begin = 100;
int i = 0;
begin:
i = i + 1;
cout << i << endl;
if (i < 2)
    goto begin;
cout << begin << endl;
//输出为:
//1
//2
//100

⚠️goto语句和控制权转向的那条带标签的语句必须位于同一个函数之内。

和switch语句类似,goto语句也不能将程序的控制权从变量的作用域之外转移到作用域之内:

	//...
	goto end;
	int ix = 10;//错误:goto语句绕过了一个带初始化的变量定义
end:
	//错误:此处的代码需要使用ix,但是goto语句绕过了它的声明
	ix = 42;

想要获取最新文章推送或者私聊谈人生,请关注我的个人微信公众号:⬇️x-jeff的AI工坊⬇️

个人博客网站:https://shichaoxin.com

GitHub:https://github.com/x-jeff


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值