C++Primer_ch5

第5章 语句


5.1 简单语句
5.2 语句作用域
5.3 条件语句
5.4 迭代语句
5.5 跳转语句
5.6 try语句块和异常处理


5.1 简单语句
  • 最简单的语句是空语句;
  • 块不以分号作为结束

5.2 语句作用域
  • 定义在控制结构当中的变量只在相应语句的内部可见,一旦语句结束,变量也就超出其作用范围了

5.3 条件语句
  • if、if-else,注意使用花括号控制执行路径
  • switch语句。case标签必须是整型常量表达式。顺序执行所有case分支,希望多值共享同一组操作,省略break语句。default标签,如果没有任何一个case标签能匹配上switch表达式的值,程序将执行紧跟在default标签后面的语句

5.4 迭代语句
  • 迭代语句。whilefor语句在执行循环体之前检查条件, do while语句先执行循环体,再检查条件。

  • while(condition) statement

  • for(init-statement;condition;expression) statement 。for语句头中的多重定义;for语句头能省略init-statement、condition、expression中任何一个(或者全部)。范围for语句for(declaration : expression) statement

  • do statement while(condition);


5.5 跳转语句
  • break 作用范围仅限于最近的循环或者switch
  • continue 终止最近的循环中的当前迭代并立即开始下一次迭代
  • goto 无条件跳转到同一函数内到另一条语句
  • return

5.6 try语句块和异常处理
  • 异常处理包括:throw表达式try语句块一套异常类
  • throw表达式包含关键字throw和紧跟其后的一个表达式,其中表达式类型就是抛出的异常类型。表达式后面紧跟一个分号,构成一条表达式语句。
  • try语句块的通用语法形式是
try{
	 		program-statements
	}catch (expression-declaration){
			handler-statements
	}catch (expression-declaration){
			handler-statements
	} // ...

        try语句块内声明的变量在块外部无法访问,在catch子句内也无法访问。
       函数在寻找处理代码的过程中退出, 一个try语句块可能调用了包含另一个try语句块的函数,新的try语句块可能调用了包含又一个try语句块的新函数;
       寻找处理代码的过程与函数调用链刚好相反。当异常被抛出时,首先抛出该异常的函数。如果没有找到匹配的catch子句,终止该函数,并在调用该函数的函数中寻找。如果还是没有找到匹配的catch子句,这个新的函数也被终止,继续搜索调用它的函数。以此类推,沿着程序的执行路径逐层回退,直到找到适当类型的catch子句为止。
       如果还是没有找到任何匹配的catch子句,程序转到名为 terminate的标准库函数,一般情况下,执行该函数将导致程序非正常退出。
       对于没有任何try语句块定义的异常,也按照类似的方式处理:没有try语句块也就没有匹配的catch子句。如果没有try语句块且发生了异常,系统就会调用terminate函数并终止当前程序的执行

  • 标准异常
    exception头文件定义了最通用的异常类exception。它只报告异常的发生,不提供任何额外信息
    stdexcept头文件定义了几种常见的异常类,见下表
    new头文件定义了bad_alloc异常类型,第12章详细介绍
    type_info头文件定义了bad_cast异常类型,第19章详细介绍

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值