[C++ Primer] 语句
语句
-
使用空语句时应该加上注释,从而让读这段代码的人知道该语句是有意省略的。
while(cin >>s && s != sought ) ; // 空语句
-
复合语句:指用花括号括起来(可能为空的)语句和声明的序列,复合语句也被称为块(block)。
-
case标签必须是整型常量表达式。
-
C++提供了4种跳转语句:break、continue、goto和return。
-
break语句负责终止离它最近的while、do while、for或switch语句,并从这些语句之后的第一条语句开始继续执行。
-
continue语句终止最近的循环中的当前迭代并立即开始下一次迭代。和break语句类似的是,出现在嵌套循环中的continue语句仅作用于离它最近的循环。和break语句不同的是,只有当switch语句嵌套在迭代语句内部时,才能在switch里使用continue。
-
goto语句
作用是从goto语句无条件跳转到同一函数内的另一条语句。语法形式为:
goto label;
label是作用于标识一条语句的标示符。带标签语句是一种特殊的语句,在它之前有一个标示符以及一个冒号:、
end: return; // 带标签语句,可以作为goto的目标
标签标示符独立于变量或其他标示符的名字,因此,标签标示符可以和程序中其他实体的标示符使用同一个名字而不会相互干扰。goto语句和控制权转向的那条带标签的语句必须位于同一个函数之内。
尽量不要在程序中使用goto语句,因为它使得程序既难理解又难修改。
-
throw表达式
程序的异常检测部分使用throw表达式引发一个异常。throw表达式包含关键字throw和紧随其后的一个表达式,其中表达式的类型就是抛出的异常类型。throw表达式后面通常紧跟一个分号,从而构成一个表达式语句。
-
try语句块
通用语法形式是
try{ program-statements } catch(exception-declaration){ handler-statements } catch(exception-declaration){ handler-statements } // ...
-
标准异常
C++标准库定义了一组类,用于报告标准库函数遇到的问题。这些异常类也可以为我们所用,分别定义在4个头文件中:
- exception头文件 定义了最通用的异常类exception。只报告异常的发生,不提供任何额外信息。
- stdexcept头文件 定义了几种常用的异常类,详细信息在下表中给出。
- new头文件 定义了bad_alloc异常类型
- type_info头文件 定义了bad_cast异常类型
只能以默认初始化的方式初始化exception、bad_alloc和bad_cast对象,不允许为这些对象提供初始值。
其他异常类型行为恰好相反:应该使用string对象或者C风格字符串初始化这些类型的对象,但是不允许使用默认初始化的方式。当创建此类对象时,必须提供初始值,该初始值含有错误相关的信息。
异常类型只定义了一个名为what的成员函数,该函数没有任何参数,返回值是一个指向C风格字符串的const char*。该字符串的目的是提供关于异常的一些文本信息。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗