5.1 简单语句
一个;
就可以表示一个空语句
花括号{}
表示一个语句块,一个块就是一个作用域。
5.2 语句作用域
5.3 条件语句
习惯使用花括号避免代码混乱。
悬垂else,else与离它最近的尚未匹配的if匹配,从而消除程序的二义性。
switch语句中case标签必须是整型常量表达式,进入case分支后只有遇到break或者switch结尾才会停止,否则执行所有的case分支代码。
5.4迭代语句
- for/范围for
- while
- do while
5.5 跳转语句
- break
- continue
- goto
goto label;
label是用于标识一条语句的标识符。带标签语句:
end: return;
标签标识符独立于变量或其他标识符的名字,标签标识符可以和程序中其他的实体的标识符使用同一个名字而不会相互干扰。goto语句和控制权转向的那条带标签的语句必须位于同一个函数之内。
// ...
goto end;
int ix = 10;
end:
ix = 42 // 错误,跳过了ix的声明
5.6 异常处理try
- thorw
- try
throw表达式
使用throw引发一个异常。throw后跟一个表达式,表达式类型就是抛出的异常类型。
throw runtime_error("data must refer to same ISBN");
通过throw抛出一个runtime_error类型的错误,终止当前函数,并把控制权转移给能处理该异常的代码。
try语句块
try {
program-statements
} catch (exception-declaration) {
hanlder-statements
} catch (exception-declaration) {
hanlder-statements
}//...
try语句块内声明的变量在块外无法访问,特别是在catch子句内无法访问。
try{
// 程序代码
}catch(runtime_error err){
// 处理异常,比如输出错误信息,原因等
cout<<"类型不一致";
}