主页
文章
分类
系列
标签
简历
【C++ Primer(edition 5) 05】语句
发布于: 2021-9-12   更新于: 2021-9-12   收录于: Cpp
文章字数: 98   阅读时间: 1 分钟   阅读量:

简单语句

  • 表达式语句:一个表达式末尾加上分号,就变成了表达式语句。
  • 空语句:只有一个单独的分号。
  • 复合语句(块):用花括号 {}包裹起来的语句和声明的序列。一个块就是一个作用域。

条件语句

  • 悬垂else(dangling else):用来描述在嵌套的if else语句中,如果ifelse多时如何处理的问题。C++使用的方法是else匹配最近没有配对的if

迭代语句

  • while:当不确定到底要迭代多少次时,使用 while循环比较合适,比如读取输入的内容。
  • forfor语句可以省略掉 init-statementconditionexpression的任何一个;甚至全部
  • 范围forfor (declaration: expression) statement

跳转语句

  • breakbreak语句负责终止离它最近的whiledo whilefor或者switch语句,并从这些语句之后的第一条语句开始继续执行。
  • continue:终止最近的循环中的当前迭代并立即开始下一次迭代。只能在whiledo whilefor循环的内部。

try语句块和异常处理

  • throw表达式:异常检测部分使用 throw表达式来表示它遇到了无法处理的问题。我们说 throw引发 raise了异常。
  • try语句块:以 try关键词开始,以一个或多个 catch字句结束。 try语句块中的代码抛出的异常通常会被某个 catch捕获并处理。 catch子句也被称为异常处理代码
  • 异常类:用于在 throw表达式和相关的 catch子句之间传递异常的具体信息。
1
2
3
4
Sales_item item1,item2;
cin >> item1>>item2;
if(item1.isbn() != item2.isbn())
	throw runtime_error("Data must refer to same ISBN");
  • runtime_error:异常类,抛出异常将终止当前函数并将控制权给能处理该异常的代码
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
while(cin>>iteml>>item2){
	try{
		//......
	}catch(runtime_error err){
		cout << err.what()
		     << "\nTry Agiain?"<<endl;
		char c;
		cin >> c;
		if(!cin || c=='n')
			break;
	}
}

标准异常

《C++Primer(edition 5)》P197