简单语句
一个表达式末尾加上分号,就变成了表达式语句 空语句,只包含一个分号 如果在程序的某个地方,语法上需要一条语句但逻辑上不需要,此时应该使用空语句。
//重复读入数据直到到达文件末尾或某次输入等于sought
while(cin>>s&&s!=sought){
;//空语句
}
使用空语句应该加上注释。 多余的空语句并非总是无害的。 复合语句:用花括号括起来的语句和声明的序列,复合语句也称快,一个快就是一个作用域。
条件语句
悬垂else(dangling else):用来描述在嵌套的if else语句中,如果if比else多时如何处理的问题。C++使用的方法是else匹配最近没有配对的if。
const vector<string>scores={"E","D","C","B","A","A++"}
if(grade<60)
lettergrade=scores[0];
else{
lettergrade=scores[(grade-50)/10];
if(grade!=100)
if(grade%10>7)
lettergrade+='+';
else if(grade%10<3)
lettergrade+='-';
}
迭代语句
while:当不确定到底要迭代多少次时,使用 while循环比较合适,比如读取输入的内容。 for: for语句可以省略掉 init-statement, condition和 expression的任何一个;甚至全部。 范围for: for (declaration: expression) statement
跳转语句
break:break语句负责终止离它最近的while、do while、for或者switch语句,并从这些语句之后的第一条语句开始继续行。 continue:终止最近的循环中的当前迭代并立即开始下一次迭代。只能在while、do while、for循环的内部。
try语句块和异常处理
throw表达式:异常检测部分使用 throw表达式来表示它遇到了无法处理的问题。我们说 throw引发 raise了异常。 try语句块:以 try关键词开始,以一个或多个 catch字句结束。 try语句块中的代码抛出的异常通常会被某个 catch捕获并处理。 catch子句也被称为异常处理代码。 异常类:用于在 throw表达式和相关的 catch子句之间传递异常的具体信息。