C/C++基础复习(五)语句

C/C++ 2014年07月01日 ,

经过对C/C++表达式的复习后,继续对语句进行温习。http://furzoom.com/

语句

简单语句

程序语句最简单的形式就是空语句。如,

;// null statement

使用空语句时应该加上注释,以便任何读这段代码的人都知道该语句是有意省略的。

声明语句

在C++中,对象或类的定义或声明也是语句,尽管定义语句这种说法也许更准确些,但定义语句经常被称为声明语句

复合语句

复合语句通常被称为,是用一对花括号括起来的语句序列。块标识了一个作用域,在块中引入的名字只能在该块内部或嵌套在块中的子块里访问。通常,一个名字只从其定义处到该 志的结尾这段范围内可见。

块并不是以分号结束的。

语句的作用域

控制语句内定义的变量,限制其作用域为控制结构结束之前。

if语句

if (condition)
    statement1
else if (condition)
    ...
else
    statementn

switch语句

switch(n)<br />{<br />case 1:<br />    statement1<br />case 2:<br />    statement2<br />...<br />default:<br />    default statement<br />}

对于switch结构,只能在它的最后一个case标号或default标号后面定义变量,保证不会跳过变量的定义。当然可以在case标号下引入语句块来定义变量。

while语句

while (condition)
    statement

for语句

for (initializer; condition; expression)
    statement

do while语句

do
    statement
while (condition)

break语句

break语句用于结束最后的while、do while、for或switch语句,并将牟执行权传给紧接在被终止语句之后的语句。

continue语句

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

goto语句

goto语句提供了函数内部的无条件跳转。goto语句的滥用会导致程序的可读性差。

try块和异常处理

异常就是运行时出现的不正常。在设计良好的系统中,异常是程序错误处理的一部分。

异常机制提供程序中错误检测与错误处理部分之间的通信。C++的异常处理包括:

  1. throw表达式,错误检测部分使用这种表达式说明遇到了不可处理的。可以说,throw引发了异常条件。
  2. try块,错误处理部分使用它来处理异常。catch语句用来处理异常。
  3. 标准库定义了一组异常类,用来在throw和相应的catch之间传递有关的错误信息。

throw用于抛出异常,try用于测试异常,catch用于捕捉异常。如,

int ival1, ival2;
...
try {
    if( ival1 < ival2)
        throw runtime_error("ival1 is less than ival2");
} catch ( runtime_error err ) {
    cout<<err.what();
} catch ( ... ) {
...
}

runtime_error类型是库异常类的一种。stdexcept头文件字义了几种常见的异常类。

stdexcept头文件定义的标准异常类

异常 说明
exception 最常见的异常
runtime_error 运行时错误:仅在运行时才能检测到问题
range_error 运行时错误:生成的结果超出了有意义的值域范围
overflow_error 运行时错误:计算上溢
underflow_error 运行时错误:计算下溢
logic_error 逻辑错误:可在运行前检测到问题
domain_error 逻辑错误:参数的结果值不存在
invalid_argument 逻辑错误:不合适的参数
length_error 逻辑错误:试图生成一个超出该类型最大长度的对象
out_of_range 逻辑错误:使用一个超出有效范围的值

使用预处理器进行调试

程序所包含的调试代码公在开发过程中执行。当程序已经完成,并且准备提交时,就会将调试代码关闭。

#ifndef NDEBUG
cerr<<"starting main"<<endl;
#endif

预处理器定义的常量

预处理器定义的常量 说明
__FILE__ 文件名
__LINE__ 当前行号
__TIME__ 文件被编译的时间
__DATE__ 文件被编译的日期

另一个常用的调试技术是使用NDEBUG预处理变量以及assert预处理宏。assert宏是在cassert头文件中定义的。用于测试不可能发生的事。

Terms

assert

block

break statement

case label

catch clause

compound statement

continue statement

dangling else

declaration statement

default label

exception classes

exception handler

exception specifier

expression statement

flow of control

goto statement

if else statement

if statement

labeled statemet

null statement

preprocessor macro

raise

switch statement

terminate

throw expression

try block

while loop

如无特别说明,本站文章皆为原创,若要转载,务必请注明以下原文信息:
日志标题:《C/C++基础复习(五)语句》
日志链接:http://furzoom.com/c-cplusplus-primetive-knowledge-5/
博客名称:枫竹梦

发表评论

插入图片

NOTICE1:请申请gravatar头像,没有头像的评论可能不会被回复!

回到顶部