[C++ Primer CH05] 第5章语句(笔记)

本文概述了C++中的各种控制流语句,包括循环(while、for、do while)、条件分支(if、switch)、迭代终止(continue)、退出(break)、转移(goto)、异常处理(try、catch)及抛出(throw)。此外还介绍了表达式和声明语句的作用,以及一些编程最佳实践。

小结:

C++语言提供了有限的语句类型,它们中的大多数会影响程序的控制流程:

● while、for和do while语句,执行迭代操作。

● if和switch语句,提供条件分支结构。

● continue语句,终止循环的当前一次迭代。

● break语句,退出循环或者switch语句。

● goto语句,将控制权转移到一条带标签的语句。

● try和catch,将一段可能抛出异常的语句序列括在花括号里构成try语句块。catch子句负责处理代码抛出的异常。

● throw表达式语句,存在于代码块中,将控制权转移到相关的catch语句。

● return语句,终止函数的执行。我们将在第6章介绍return语句。

除此之外还有表达式语句和声明语句。表达式语句用于求解表达式,关于变量的声明和定义在第2章已经介绍过了。


笔记:

1.使用空语句时应该加上注释,从而令读这段代码的人知道该语句是有意省略的。


2.一般不要省略case分支最后的break语句。如果没写break语句,最好加一段注释说清楚程序的逻辑。


3.即使不准备在default标签下做任何工作,定义一个default标签也是有用的。其目的在于告诉程序的读者,我们已经考虑到了默认的情况,只是目前什么也没做。


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


FAQ:

Q1:为什么不能通过范围for语句增加vector对象(或者其它容器)的元素?

A1:在范围for语句中预存了end()的值。一旦在序列中添加(删除)元素,end函数的值就可能变得无效了。

Q2:switch的执行流程有可能会跨过某些标签,如果被略过的代码中含有变量的定义该怎么办?

A2:如果在某处一个带有初值的变量位于作用域之外,在另一处该变量位于作用域之内,则从前一处跳转到后一处的行为是非法行为。

【重要提示】本资源设置为0积分下载,若非0积分请勿轻易下载 亲爱的CSDN用户: 首先感谢你点进这个资源页面。我需要提前说明一个重要情况: 本资源原本已设置为“0积分下载”,即作者希望完全免费共享。但CSDN平台有时会根据文件的下载热度、文件大小、用户权限等因素,自动将部分资源的积分调整为非0数值(如1积分、2积分、5积分等)。这是平台系统的自动行为,而非作者本人的设定。 因此,如果你当前看到该资源的下载所需积分不是0(例如显示为1、2、3……),请谨慎决定是否下载。 如果你按照非0积分支付并下载后发现资源内容不符合预期、链接失效,或者实际上该资源本应是免费的,作者无法为此承担积分损失或退还操作。强烈建议:仅在页面显示为0积分时进行下载。 另外,本资源描述中并未直接提供具体的下载地址或外部链接,因为它本身是一个通过CSDN官方上传通道提交的文件/内容包。如果你看到描述中没有外部网盘地址,这是正常的——资源文件应通过CSDN内置的“下载”按钮获取。若因平台积分显示异常导致你支付了积分,请优先联系CSDN客服咨询积分退还政策,作者没有权限修改平台自动设定的积分值。 感谢你的理解与支持。技术分享本应开放,但受限于平台规则,特此提醒如上。祝学习进步!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值