C++ primer 5章 语句
第五章:语句
简单语句
- 表达式语句:一个表达式末尾加上分号,就变成了表达式语句。
- 空语句:只有一个单独的分号。
- 复合语句(块):用花括号
{}
包裹起来的语句和声明的序列。一个块就是一个作用域。
条件语句
悬垂else(dangling else):用来描述在嵌套的
if else
语句中,如果if
比else
多时如何处理的问题。C++使用的方法是else
匹配最近没有配对的if
。switch:default标签,当没有任何一个case标签能匹配上switch表达式的值时,程序将执行default后面的语句。
C++里的
\t
相当于按了Tab
键;switch中的
case
标签必须是整型常量表达式。多个
case
的写法:1
2
3case 1: case 3: case 5: case 7: case 9:
oddcnt++;
break;
迭代语句
while:当不确定到底要迭代多少次时,使用
while
循环比较合适,比如读取输入的内容。for:
for
语句可以省略掉init-statement
,condition
和expression
的任何一个;甚至全部。范围for:
for (declaration: expression) statement
C++ 11新引进1
2
3
4
5
6
7
8
9
10vector <int> v = {0,1,2,3,4,5,6,7,8,9};
for(auto &r : v)
r = r * 2;
/*等价于
for(auto beg = v.begin(); end = v.end(); beg != end; ++beg)
{
auto &r = *beg;
r = r * 2;
}
*/do while语句:
do {statement} while (condition);
跳转语句
- break:
break
语句负责终止离它最近的while
、do while
、for
或者switch
语句,并从这些语句之后的第一条语句开始继续执行。 continue:终止最近的循环中的当前迭代并立即开始下一次迭代。只能在
while
、do while
、for
循环的内部。goto:无条件的跳转到同一函数内的另一条语句。不要轻易的用goto!!!
try语句块和异常处理
- throw表达式:异常检测部分使用
throw
表达式来表示它遇到了无法处理的问题。我们说throw
引发raise
了异常。 - try语句块:以
try
关键词开始,以一个或多个catch
字句结束。try
语句块中的代码抛出的异常通常会被某个catch
捕获并处理。catch
子句也被称为异常处理代码。 - 异常类:用于在
throw
表达式和相关的catch
子句之间传递异常的具体信息。
一个当除数为0时抛出异常的程序:
1 |
|