C++primer-学习心得-第五章-语句

31 篇文章 3 订阅

c++primer-第五章-语句

5.1 简单语句

需要注意的是不要漏写分号也不要多写分号。

5.2 语句作用域

可以在if、switch、while和for中的控制结构中定义变量,其中定义的变量只在其内部可见。

5.3 条件语句

1. if语句

形式为

if(condition)
    statement;
else
    statement;

需要注意的是必要的时候要用花括号防止出错。

2. switch语句

#include<iostream>
#include<string>
using namespace std;

int main() {
	unsigned a = 0, e = 0, i = 0, o = 0, u = 0,other=0;
	string text;
	while (cin >> text) {
		for (auto ch : text) {
			switch (ch) {
			case 'a':
				++a;
				break;
			case 'e':
				++e;
				break;
			case 'i':
				++i;
				break;
			case 'o':
				++o;
				break;
			case 'u':
				++u;
				break;
			default:
				other++;
				break;
			}	
		}
		cout << "a-->" <<a<< ",e-->" <<e<< ",i-->" <<i<< ",o-->"<<o << ",u-->"<<u <<",others-->"<<other <<endl;
	}
	return 0;
}

注意break语句。

5.4迭代语句

1.while语句

while(condition)
    statement;

2. 传统for语句

for(initializer;condition;expression)
    statement;

3.范围for语句

for(declaration:expression)
    statement;

之前都接触过了就不讲了。

4.do while语句

do
    statement;
while(condition);

condition为假循环结束,否则重复循环。

5.跳转语句

  • break语句负责终止离他最近的while、do while、for或switch,并从这些语句之后的第一条语句开始执行。
  • continue语句终止最近的循环的当前迭代并立即开始下一条迭代。只能出现在for、while、do while循环的内部。
  • goto语句可以无条件跳转到同一函数内的另一条语句。建议不要使用。

6. try语句块和异常处理

异常指存在于运行时的反常行为,这些行为超出函数正常功能的范围。

异常处理机制为程序中异常检测和异常处理这两部分的协作提供支持。C++中异常处理包括:

  • throw表达式,异常检测部分用throw表达式表示它遇到了不可解决的问题。抛出异常。
  • try语句块,异常处理部分用try语句块处理异常。以关键字try开始,以一个或多个catch子句结束。catch子句也称为异常处理代码。

1. try语句块

通用形式

try{
    statements;
}catch(exception-declaration){
    handle-statements;
}catch(exception_declaration){
	handle-statements;
}

2. 标准异常

C++标准库定义了一组类,用来报告标准库函数遇到的问题。这些异常类可以用在用户编写的程序里,他们分别定义在4个头文件里。

  • exception头文件定义了最通用的异常类exception。它只报告异常的发生,不提供额外的信息
  • stdexcept 头文件定义了几种常用的异常类,下表中列出
  • new头文件定义了bad_alloc异常类型
  • type_info头文件定义 bad_cast异常类型

<stdexcept>定义的异常类

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值