语句
C++程序语言一般按照顺序的方式来进行执行,但这远远不能满足需求,因此提供了一组控制流语句以支持更复杂的语句执行路径。一个表达式+分号=表达式语句。表达式语句的作用是执行语句然后丢掉求值结果,但往往会在求值的过程中产生附带例如改变相关变量值之类的其他效果。一个最简单的语句就是一个分号,此时程序什么都不做。而复杂的复合语句结构被称之为
块(block),复合语句一般
利用花括号括起来,形成一个单独的作用域,在该花括号内定义的变量只能在该作用域内被访问。在程序的某些地方如果理论上需要一条语句,但实际需要多条语句来构成所需的功能,这是就可以采用复合语句来达到目的。
条件语句
C++中提供两种按照条件来执行程序的语句:if语句和switch语句。
if语句
if (condition)
statement
if (condition)
statement
else
statement
if语句的作用是判断条件condition是否为真,如果为真则执行statement并跳过eles分支(如果存在else分的话),否则执行else之后的statement(如果存在else分支的话)。关于else语句与if语句的匹配问题:
else总是与上一个最近的if相匹配。注意不要匹配上一个if语句块statement中的if,最好的方法是给statement加上花括号增加程序可读性。
switch语句
switch (statement)
{
case value_1: statement_1
case value_2: statement_2
......
default : statement_n
}
迭代语句
迭代语句通常称之为循环语句,重复执行某个操作直到满足条件才停止。
while语句
while语句中只要condition的求值结果一直为真则重复执行statement。
while (condition)
statement
do while 语句
类似while语句,do while语句会先执行statement一次然后在检测condition,判断是否继续循环。
do
statement
while (condition)
传统for语句
for (init_statement; condition; expression)
statement
expression修改init-statement中初始化的变量;可以省略但必须在循环体中对条件变量进行修改。
condition检测的init-statement中初始化的变量;省略condition表示该部分一直为true,因此必须在循环体内进行中断操作。
范围for语句
for (declaration : expression)
statement
expression 必须是一个序列,如花括号括起来的初值列表、数组、string、vector等。
declaration 定义一个变量,序列中每个元素都可以转换为该变量的类型,最好的办法是使用关键字 auto。
每次迭代都会重新定义循环控制变量,并将其初始化成序列中的下一个值。
跳转语句
调转语句中断当前的执行过程。
break语句
break语句负责终止离它最近的while、do while、for、switch语句,并从这些语句之后的第一条语句开始继续执行。
continue语句
continue语句终止最近的循环当中的当前迭代并立即开始下一次循环,该语句只能出现在循环语句的内部。goto语句
goto语句的作用是从goto语句无条件的跳转到同一函数内的另一条语句。label是用于标识一条语句的标示符。和switch语句类似,goto语句不能将程序的控制权从变量的作用域之外转移到作用于之内。
goto label;
....
lable :
statement
异常处理语句
异常处理机制为程序中的异常检测和异常处理两部分的协作提供支持。在C++语言中,异常处理包括:
1)异常检测部分使用throw表达式来表示其遇到的无法处理的问题。
2)try语句块用来进行异常处理。该语句块以关键字try开始,并以一个或者多个catch子句结束。
3)一套异常类,用于在throw表达式和相关的catch子句之间传递异常的具体信息。
try语句块的通常语法形式:
try {
program-statement
} catch (exception-declaration){
handler-statement
} catch (exception-declaration){
handler-statement
} //...