第 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 风格字符串。