Skip to content

Latest commit

 

History

History
103 lines (61 loc) · 3.35 KB

语句.md

File metadata and controls

103 lines (61 loc) · 3.35 KB

Table of Contents generated with DocToc

简单语句

空语句常见于循环中,同时,无关的空语句总是无害的。

声明语句

搞清定义和声明的区别。 

复合语句(块)

块标识了一个作用域,一个名字只能从其定义处到该块的结尾这段范围可见。 

语句作用域

更旧式的C++允许在for语句作用域之外访问控制变量。 

if

else会匹配给最后出现的尚未匹配的if子句。 

switch

如果switch中表达式与其中一个case的值匹配。则执行该标号后面的第一个语句开始依次执行每个语句,直到switch结束或遇到break。如果没有发现匹配的case标号(并且也没有default),则程序从switch语句后面的第一条语句继续执行。

有个普遍的误解是以为程序只会执行匹配的case标号相关联的语句,实际上,程序从该点开始,并跨越case边界继续执行其他语句,直到switch结束或break

case标号必须是整型常量表达式,如果两个case有相同的值,会导致编译错误。

对于switch结构,只能在它的最后一个case标号或default后定义变量,避免出现跳过变量的定义和初始化的情况。

while

在循环条件中定义的变量,每次循环里都要经历创建和撤销的过程。 

for

可以省略for语句的某些部分,也可以在for语句头中有多个定义。 

do while

do while语句总以分号结束。

break

break用来结束最近的whiledo whileforswitch语句。 

continue

continue导致最近的循环语句的当前迭代提前结束。 

goto

label与变量名及其他标识符一样,不能重名。

goto语句和获得所转移的控制权的标号的语句必须在同一个函数内。

goto不能跨越变量的定义语句往前跳转,如果goto和将跳转的标号之间定义变量,则必须放在一个块语句中。(但是在后面的label中,变量仍不可见)。

goto向后跳转回到一个变量定义之前,系统会撤销这个变量,重新创建。

try和异常处理

如果不存在处理该异常的catch子句,程序的运行就要跳转到terminate的标准库函数。 

使用预处理器进行调试

可使用NDEBUG预处理变量实现有条件的调试代码。

#ifdef NDEBUG

#endif

导航

目录

上一章:[6. 语句](6. 语句.md)

下一章: