C++primer 语句

本文详细介绍了C++中的控制结构,包括if、switch、while、for等语句的使用方法及其作用域特性,并深入探讨了异常处理机制,如try、catch、throw等关键字的应用场景及异常类的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 可以在if switch while for 语句的控制结构内定义变量。定义在控制结构当中的变量只在相应语句内部可见,一旦语句结束,变量也就超出其作用范围了控制结构定义的对象的值马上使用所以必须初始化
    switch语句提供了一条便利的途径使得我们能偶在若干固定选项中做出选择。case标签必须是整形常量表达式
    **如果在某处带有一个初始值的变量位于作用于之外,在另一处该变量位于作用域之内,则从另一处跳转到后一处的行为是非法行为

迭代语句(循环)

她重复执行直到满足某个条件才停下来
while(condition)
 statement;
* 如果statement第一次就为false则一次都不执行,一般来说有条件本身或循环体来更新表达式的值,否则无法终止
* int i;
while(cin>>i)//重复读入数据直到文件尾,或遇到其他输入问题
…..
*for语句
for(init_statement;condition;expression)
 statement;
init_statement满足以下三种之一:声明语句,表达式语句空语句
for语句中定义的对象,只在for循环体中可见
init_statement中可以定义多个对象,但是变量基础类型必须相同
三个部分都可以省略,省略condition相当于条件部分写了一个true,所以循环体要负责退出语句;省略expression就要求循环部分
范围for语句
for (declaration:expression)
 statement;
这种语句遍历一个序列或者容器,expression必须是一个序列,如用花括号括起来的初始值列表,数组,vector,或者string等类型的对象,她们的共同特点,是拥有能返回迭代器的begin和end成员;范围for循环预存了end(),所以不能用来增加对象
*do whlie语句
与while非常相似,唯一的区别是先执行循环体后检查条件。由于先执行循环,所以不允许在条件部分定义变量
5.5 跳转语句
break:负责终止离她最近的while 、 for 、do while 、switch语句

continue:终止最近的循环中的当前迭代并立即执行下一次迭代,只能出现在while 、 for 、do while语句中

5.6 try语句块和异常处理
异常是指存在于运行时的反常行为,典型异常有:失去数据库连接、以及遇到输入意外等
异常处理机制为程序的异常检测和异常处理这两部分提供支持
在c++中,异常处理包括:
* throw表达式,异常检测部分使用throw表达式来表示她遇到了无法处理的问题
* try语句块:异常处理部分使用try语句块处理异常。try语句块以关键字try开始,并以一个或多个catch子句结束。try语句快中抛出的异常通常会被某一个catch子句处理;因此catch子句被称为异常处理代码
* 一套异常类:用于在throw表达式和相关的catch子句之间传递异常信息
throw表达式:throw表达式包含关键字throw和她后面跟的一个表达式,其中表达式的类型就是抛出的异常类型;
5.6.2try语句块:
try{
  program-statements;
  }
  catch (expression-declaration){
      handler-statements;
      }
  catch (expression-declaration) {
       handler-statements; 
}//…
catch子句中括号内是一个对象的声明(称为异常声明,exception-declaration)
1.exception头文件:定义了最通用的异常类exception,他只报告了异常的发生,不提供任何额外的信息;
2.stdexcept头文件:定义了几种常用的异常类,
3.new:定义了bad_alloc的异常类型
4.type_info头文件:定义了 bad _cast异常类型
只能以默认初始化方式初始化exception、bad_alloc、bad _cast、不允许为这些对象提供初始值,其他异常类型则相反:应该使用string对象或者c风格字符串来初始化这些类型对象,但是不允许使用默认初始化方式。创建此类对象时必须提供初始值,该初始值含有与错误相关的信息;异常类型只定义了一个名为what的成员函数,该函数没有任何参数,返回值是一个指向c风格字符串的const char* ;该字符串的目的是提供关于异常的一些文本信息;what函数返回的c风格字符串的内容与一场对象的类型有关,如果异常类型有一个字符串初始值,则what返回该字符串,对于其他无初始值的异常类型来说,what返回的内容由编译器决定:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值