Skip to main content

第 5 章:语句

C++ 提供了条件执行语句、重复执行相同代码的循环语句和用于中断当前控制流的跳转语句。

C++ 提供了一组控制流(flow-of-control)语句以支持更复杂的执行路径。

5.1 简单语句

空语句

;

别漏写分号,也别多些分号。

复合语句(块)

块不以分号结束。

一个块就是一个作用域。

{
//...
//...
}

5.2 语句作用域

定义在控制结构当中的变量只在相应语句的内部可见,一旦语句结束,变量也就超出其作用范围了

5.3 条件语句

if 语句

if (condition)
statement1
else if (condition)
statement2
else
statement3

switch 语句

switch () {
case c1:
case c2:
case c3:
// do
break;
case c4: {
// do
// do
break;
}
default:
// do
}

5.4 迭代语句

while 语句

while (condition)
statement

for 语句

for (init-statemet; condition; expression)
statement

范围 for 语句

for (declaration : expression) {
statement
}

expression 必须是一个序列,能够返回 begin、end。

如果想要进行写操作,declaration 必须是引用类型 for (auto &r : v)

do while 语句

do {
statement
} while (condition)

无论如何至少执行一次

5.5 跳转语句

break 语句

continue 语句

终止最近的循环中的当前迭代并立即开始下一个迭代。

goto 语句

不要在程序中使用 goto 语句,因为它使得程序既难理解又难修改。

5.6 try 语句块和异常处理

throw 语句

try 语句

try {
program-statements
} catch (exception-declaration) {
handler-statements
} catch (exception-declaration) {
handler-statements
}

异常中断了程序的正常流程

标准异常

  • exception 头文件:最通用的异常类 exception,只报告异常,不提供信息
  • stdexcept 头文件:几种常用的异常类

  • new 头文件:bad_alloc 异常类型
  • type_info 头文件:bad_cast 异常类型

异常类型只定义了一个名为 what 的成员函数,该函数没有任何参数,返回 c 风格字符串。