《C++ Primer》 第五章 语句

本文详细介绍了C++中的几种语句类型,包括复合语句、for循环(普通与范围for)以及goto语句的使用规则。同时,讨论了异常处理机制,如try-catch结构,以及不同类型的异常类,帮助理解如何在遇到错误时进行程序控制和问题排查。

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

《C++ Primer》 第五章 语句

复合语句:用花括号括起来的语句(可能是空的)和声明的序列,复合语句也被称为块。

for语句:

//重复处理s中的字符直到处理完全部字符或者遇到了一个表示空白的字符
for (decltype(s.size()) index = 0; index != s.size() && !isspace(s[index]); ++index)
	s[index] = toupper(s[index]);  //将当前字符改成大写形式

范围for语句:

for(declaration: expression)

​ statement

for(auto beg = v.begin(),end=v.end();beg!=end;++beg){
	auto &r=*beg;	//r必须是引用类型,这样才能对元素执行操作
	r* = 2;
}

不能通过范围for语句增加vector对象的元素。因为在范围for语句中,预存了end()的值,一旦在序列中添加(删除)元素,end函数的值就可能变得无效了。

goto语句:从goto语句无条件跳转到同一函数内的另一条语句。

goto label;

其中,label是用于标识一条语句的标识符。带标签语句是一种特殊的语句,在它之前有一个标识符以及一个冒号:

end: return; //带标签语句,可以作为goto的目标

goto语句不能将程序的控制权从变量的作用域之外转移到作用域之内。goto语句和控制权转向的那条带标签的语句必须位于同一个函数之内。

try语句块和异常处理

典型的异常包括失去数据库连接以及遇到意外输入。

  • throw表达式:表示遇到了无法处理的问题
  • try语句块:以关键字try开始,并以一个或多个catch子句结束。try语句块中代码抛出的异常通常会被某个catch子句处理。

try语句块的通用语法形式:

try {
	program-statements
} catch (exception-declaration) {
	handler-statements
} catch (exception-declaration){
	handler-statements
}//....

定义的异常类

  • exception:最常见的问题
  • runtime_error:只有在运行时才能检测出的问题
  • range_error:运行时错误:生成的结果超出了有意义的值域范围
  • overflow_error:运行时错误:计算上溢
  • underflow_error:运行时错误:计算下溢
  • logic_error:程序逻辑错误
  • domain_error:逻辑错误:参数对应的结果值不存在
  • invalid_argument:逻辑错误:无效参数
  • length_error:逻辑错误:试图创建一个超出该类型最大长度的对象
  • out_of_range:逻辑错误:使用一个超出有效范围的值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

1100dp

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值