【C++】《C++ Primer 》第五章

第五章 语句

一、简单语句

  • 表达式语句:一个表达式末尾加上分号,就变成了表达式语句。
  • 空语句:只有一个单独的分号,记得注释说明提高代码可读性。
  • 复合语句(块):用花括号 {}包裹起来的语句和声明的序列。一个块就是一个作用域。一个块结束不需要添加分号。

二、语句作用域

三、条件语句

  • 悬垂else(dangling else):用来描述在嵌套的if else语句中,如果if比else多时如何处理的问题。C++使用的方法是else匹配最近没有配对的if。
  • 一般不要省略case分支最后的break语句。如果没写break语句,最好添加一段注释说清楚程序的逻辑。
  • 及时不准备再default标签下做任何事情,定义一个default标签也是有用的。其目的在于告诉程序的读者,已经考虑到了默认的情况,只是目前什么也没做。

四、迭代语句

  • while:当不确定到底要迭代多少次时,使用 while循环比较合适,比如读取输入的内容。
  • 平常for: for语句可以省略掉 init-statement, condition和 expression的任何一个;甚至全部。
  • 牢记for语句头中定义的对象只在for循环体内可见。
  • 范围for: for (declaration: expression) statement。它可作用于能返回迭代器的begin和end成员的类型。

五、跳转语句

  • C++提供了四种跳转语句:break、continue、goto和return。
  • break:break语句负责终止离它最近的while、do while、for或者switch语句,并从这些语句之后的第一条语句开始继续执行。
  • continue:终止最近的循环中的当前迭代并立即开始下一次迭代。只能在while、do while、for循环的内部
  • goto:它很不符合现代编程的理念,慎用
  • return:终止函数的执行。

六、try语句块和异常处理

  • throw表达式:异常检测部分使用 throw表达式来表示它遇到了无法处理的问题。我们说 throw引发 raise了异常
  • try语句块:以 try关键词开始,以一个或多个 catch字句结束。 try语句块中的代码抛出的异常通常会被某个 catch捕获并处理。 catch子句也被称为异常处理代码
  • 异常类:用于在 throw表达式和相关的 catch子句之间传递异常的具体信息。
  • 异常安全:异常中断了程序的正常流程。异常发生时,调用者请求的一部分计算已经完成了,另一部分则尚未完成。
    通常情况下,略过部分程序意味着某些对象处理到一半就戛然而止,从而导致对象处于无效或者未完成的状态,或者资源没有正常释放等等。
    那些在异常发生期间正确执行了"清理"工作的程序被称作异常安全的代码。通俗的讲,就是当抛出异常后,程序能执行正确的行为
上一篇:C++ Primer 读书笔记(1)


下一篇:书单(个人)