第5章 语句
本文最后更新于:2023年8月25日 凌晨
第5章 语句
1. 简单语句
表达式语句
表达式加上分号就是一条语句
1 |
|
空语句
一个分号 ;
就是空语句
1 |
|
空语句单独不会有什么作用,但是和其他语句组合会有不同的作用。
注意:别漏写分号,也别多写分号
复合语句
复合语句也就块, 就是用一对 {}
括起来的多个语句
1 |
|
块不以分号作为结束,但是在声明定义类时
{}
后要加;
2. 条件语句
2.1 if 语句
if
语句的语法形式:
1 |
|
使用注意:
1 |
|
- 尽量每个if-else中的语句块加上花括号
{}
- if-else的匹配原则是就近原则,空格和缩进在c++是不会作用的,不像某些语言(点名 python)
2.2 switch 语句
格式:
1 |
|
注意:
- lable1, lable2,... 必须是整型常量表达式
- 如果某个case标签匹配成功,将从该标签开始往后顺序执行所有case分支,除非程序显示地中断了这一过程。
- 如果不是特殊的需求,每个case都需要加
break
, 否则会一直执行下面的标签default
标签建议写上- 在不同两个标签定义的变量,不要跨标签使用(如果需要为某个分支定义并初始化一个变量,应该把变量定义在块内,即使用{} )
3. 迭代语句
while
和for
语句在执行循环体之前检查条件,do while
语句先执行循环体,然后再检查条件。
3.1 while语句
1 |
|
3.2 do-while 语句
1 |
|
3.3 传统的for语句
1 |
|
init_statement可以定义多个对象,但只能有一条声明语句,因此所有变量的类型必须相同。
3.4 范围for语句
1 |
|
expression表示的必须是一个序列,比如用花括号括起来的初始值列表、数组或者 vector 或 string 等类型的对象,这些类型的共同特点是拥有能返回迭代器的 begin 和 end 成员。
4. 跳转语句
4.1 break 语句
break
负责终止离它最近的 while、do
while、for、或switch语句
4.2 continue 语句
结束当前迭代,并进入下次迭代
4.3 goto语句
从 goto 语句无条件跳转到同一函数内的另一条语句。
1 |
|
label是用于标识一条语句的标示符。 1
end: return; // 带标示符的语句
goto语句很好用,但是不建议用,会导致代码结构较乱
5. try语句块和异常处理
5.1 throw表达式
throw用于抛出异常
1 |
|
5.2 try 语句块
语法形式
1 |
|
program-satements 是我们用运行的语句
catch (exception-declaration) 表示的是可能会出现的异常以及相对应的异常处理语句
5.3 标准异常
c++标准库定义了一组类,用于报告标准库函数遇到的问题,它们分别定义在4个头文件中
exception
头文件定义了最通用的异常类 ,它只报告异常的发生,不提供任何额外信息stdexcept
头文件定义几种常用的异常类,详细见下表new
头文件定义了 bad_alloc异常类型type_info
头文件定义了bad_cast异常类型