小结:
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:如果在某处一个带有初值的变量位于作用域之外,在另一处该变量位于作用域之内,则从前一处跳转到后一处的行为是非法行为。