C++ Primer 第五章 语句

简单语句

大多数语句以分号结束,表达式语句的作用是执行表达式并丢掉求值结果。单独一个分号构成一个空语句,因此不要随便多写一个分号。

复合语句,即块语句,是指用花括号括起来的语句,块引入一个作用域范围,块语句不以分号结束。空块的作用等价于空语句。

语句作用域

在控制结构中定义的变量紧在该控制结构语句中有效。

条件语句

在嵌套的if-else语句中,else语句与最近的那个if语句匹配。可以通过使用花括号来改变这种默认的匹配规则。

switch语句提供在若干选项中作出选择的功能,首先执行switch语句后面的表达式,求值后转换为整形与case语句比较,如果匹配某个case标签,执行该标签后的第一条语句,直到遇见break语句或到达switch语句结尾。case标签必须是整形常量表达式。任意两个case标签的值不能相同,否则引发错误。最好在最后一个标签后写上break语句。当所有的case语句都不能匹配时,执行default语句,default语句后面最好也添加break语句。

特别注意,如果在case标签内定义变量,最好不要让变量跨越case标签,因此需要把变量定义在块内。

迭代语句

while语句中如果第一次条件语句求值为false,则循环体一次都不会执行。通常来说在条件表达式中或循环体中改变条件表达式的求值结果,否则循环可能无法终止。定义在while条件部分或循环体内的变量每次循环都经历创建与销毁的过程。

for语句中的初始化语句只执行一次,如果第一次执行条件语句时为false,则循环体不会执行并直接跳出for语句。执行完循环体后执行表达式语句,然后继续执行条件语句。当省略条件语句时表示条件一直为true。

C++ 11标准引入了一种更简单的for语句,范围for语句能遍历容器或其他序列中的元素。每次迭代都会重新定义声明变量并初始化为序列中的下一值。如果想通过迭代变量改变元素的值,需要声明为引用类型。最好使用auto语句声明迭代变量。在范围for语句中不能增减容器或序列的元素个数。

do-while语句不允许在条件中定义变量,在条件语句的括号后面要添加分号。循环语句会至少执行一次。

跳转语句

break语句负责终止while ,do while,for,switch语句,只能终止当前所在的语句。

continue语句出现在for,while,do while循环内部,终止当前循环并执行下一个循环,对于while,do while,继续判断条件语句,对于范围for,继续迭代下一个元素,对于for语句,执行语句头的expression。

goto语句只能从同一函数内跳转,goto语句直接跳转到带标签的语句,标签标识符独立于其他的变量命名空间。

try语句块和异常处理

throw表达式用于抛出异常,或表示程序引发了一个异常。

try-catch语句用于捕获并处理异常。一个try语句可以包括多个catch语句,注意C++不支持finally语句。

标准库提供了一组异常类,其中exception,bad_alloc,bad_cast只能以默认初始化的方式初始化,其他类型必须要提供异常信息。

 

posted @ 2016-11-22 14:10  Jeff-Lee  阅读(165)  评论(0编辑  收藏  举报
2047179505-asdf123456/*-