第五章
1.空语句null statement:只有一个分号
条件语句:if语句,switch语句,for语句,范围for语句,while语句,dowhile语句
unsighed aCnt = 0, eCnt = 0, iCnt = 0;
char ch;
while (cin>>ch)
{
switch(ch){
case 'a': //case标签必须是整型常量表达式
++aCnt;
break; //漏写break容易引发缺陷
case 'e':
++eCnt;
break;
case 'i':
++iCnt;
break;
default:
++otherCnt;
break;
}
}
范围for语句
for(declaration:expression)
statement
跳转语句:break语句,continue语句
break语句负责终止离他最近的while,dowhile,for或switch语句,并从这些语句之后第一条语句开始继续执行。continue语句终止最近的循环中的当前迭代并立即开始下一次的迭代,只能出现在for、while和dowhile循环的内部。
try语句块和异常处理
异常是指存在于运行时的反常行为,这些行为超出了函数正常功能的范围。典型的异常包括失去数据库链接以及遇到意外输出等。处理反常行为可能是设计所有系统最难的一部分。
异常处理包括:、
throw表达式,异常检测部分使用throw表达式来表示它遇到了无法处理的问题。
if(item.isbn() != item.isbn())
throw runtime_error("Data must refer to same ISBN") //runtime_error是标准库异常类型的一种,定义在stdexcept头文件中。
try语句块,异常处理部分使用try语句块处理异常。try语句块处理异常。try语句块以关键字try开始,并以一个或多个catch子句结束。
try {
pragram-statements
} catch(exception-declaration){
handler-statements
} catch(exception-declaration){
handler-statements
}
}
while(cin>>item1>>item2)
{
try{
//执行添加两个对象的代码
//如果添加失败,代码抛出一个runtime_error异常
} catch(runtime_error err){
//提醒用户两个ISBN必须一致,询问是否重新输入
cout << err.what()
<<"\nTry Again? Enter y or n"<<endl;
char c;
cin >>c;
if(!cin||c == 'n')
break;//跳出while循环
}
}
英语术语
块:block 包围在花括号内的由0条或多条语句组成的序列。
异常类:exception class 是标准库定义的一组类,用于表示程序发生的错误。
异常声明:exception declaration 位于catch子句中的声明,指定了该catch子句能处理的异常类型。
异常处理代码:exception handler 程序某处引发异常,用于处理该异常的另一处代码。
控制流:flow of control 程序的执行路径
引发:raise 含义类似于throw。在C++语言中既可以说抛出异常,也可以说是引发异常
throw 表达式:一种中断当前执行路径的表达式。throw表达式抛出一个异常并且把控制权转移到能处理该异常的最近catch子句。
try语句块:跟在try关键字后面的块,以及一个或多个catch子句。