[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*。该字符串的目的是提供关于异常的一些文本信息。
[C++ Primer] 语句的更多相关文章
- python第六天 函数 python标准库实例大全
今天学习第一模块的最后一课课程--函数: python的第一个函数: 1 def func1(): 2 print('第一个函数') 3 return 0 4 func1() 1 同时返回多种类型时, ...
- whdxlib
1 数据库系统实现 实 验 指 导 书 齐心 彭彬 计算机工程与软件实验中心 2016 年 3 月2目 录实验一.JDBC 应用程序设计(2 学时) ......................... ...
- C Primer Plus_第5章_运算符、表达式和语句_编程练习
Practice 1. 输入分钟输出对应的小时和分钟. #include #define MIN_PER_H 60 int main(void) { int mins, hours, minutes; ...
- C++_系列自学课程_第_12_课_语句_《C++ Primer 第四版》
前面的文章说完了表达式和类型转换的部分内容,在我参考的书里面,接下来讨论的是各种语句,包括:顺序语句.声明语句.复合语句(块语句).语句作用域 .if语句.while语句.for语句.do...whi ...
- 《C++primer》v5 第5章 语句 读书笔记 习题答案
5.1 空语句只有一个";".如果什么也不想做可以使用空语句. 5.2 用花括号{}括起来的叫块,也叫复合语句.有多条语句作用在同一个作用域时,需要用花括号括起来. 5.3 降低了 ...
- 学习C++.Primer.Plus 6 分支语句和逻辑操作符
||. &&操作符是一个顺序点 < 操作符从左向右结合 ; < age < )//17<age为true, = 1,肯定 < 27.所以为整个条件为tru ...
- C++ Primer 5th 第5章 语句
和大多数语言一样,C++提供了条件执行语句.重复执行相同代码的循环语句和由于中断当前控制流的跳转语句,表达式语句和声明语句等. 语句有简单语句和复合语句之分.简单语句但多数以分号结束,最简单的语句就是 ...
- C++ Primer Plus 6th 读书笔记 - 第6章 分支语句和逻辑运算符
1. cin读取错误时对换行符的处理 #include <iostream> using namespace std; int main() { double d; char c; cin ...
- C++ Primer 5 CH5 语句
5.1 简单语句 空语句: ; 5.2 语句作用域 5.3 条件语句 switch 语句:表达式与某个 case 匹配成功,执行 case 之后的语句直到 break 或者 switch 结尾,cas ...
- C++ Primer 笔记——语句
switch 内部的变量定义 1.因为C++语言规定,不允许跨过变量的初始化语句直接跳转到该变量作用域内的另一位置,所以有了如下情况: bool bsuccess = false; switch (b ...
随机推荐
- Oracle中数值型及处理方法
数值型 理解精度 number类型的精度表示可以标识数据精确度的位数.对于数字13245.977,当精确到小数点后2位,数据为12345.98,此时精度为7.而当精确到小数点前2位,数据为12300, ...
- pdf渲染和对比 react-pdf-highlighter
前言 react-pdf-highlighter 使用此插件 做pdf的预览 高亮 批注 对比等 效果 地址 https://github.com/dingshaohua-cn/pdf-highlig ...
- 借助ETLCloud工具,轻松同步Doris数据至Inceptor数据库
一.背景 在现代企业中,数据是决策和运营的核心.为了更好地利用这些数据,企业通常需要将数据从不同的源系统(如Doris)同步到一个集中的数据仓库(如Inceptor).ETL(Extract, Tra ...
- 首次进入Mysql修改密码报“The MySQL server is running with the --skip-grant-tables option so it cannot execute”--九五小庞
第一次安装完mysql,修改默认密码的时候,报"The MySQL server is running with the --skip-grant-tables option so it c ...
- 如何在Linux中更改默认的MySQL / MariaDB端口
在本指南中,我们将学习如何更改MySQL / MariaDB数据库在CentOS 7和基于Debian的Linux发行版中绑定的默认端口. MySQL数据库服务器在Linux和Unix下运行的默认端口 ...
- win11正式版如何修改密码的问题
有很多雨林木风官网的小伙伴,都安装win11系统了.但是,因为win11正式版系统是新系统,有些问题大家都不知道怎么解决,比如win11系统如何修改开机密码的问题?下面win11官网小编就来分享具体的 ...
- Java GC知识总结
目录 简介 判断对象是否可达 引用计数法(Reference Counting) 可达性分析法(Reachability Analysis) Java中4种引用与GC的关系 强引用(Strongly ...
- vagrant 学习笔记 ------------(批量创建虚拟机)
# 创建的虚拟机的数组 vm_list = [ { # hash map "name" => "node-1", "cpu" => ...
- UNION ALL用法 以及 UNION ALL和UNION的区别
部分参考自文章: https://blog.csdn.net/a200822146085/article/details/119545374(CC 4.0 BY-SA版权协议)CSDN「我心依依旧」 ...
- HDU6808 Go Running(未解决问题
https://vjudge.net/contest/386568#problem/G Zhang3 is the class leader. Recently she's implementing ...