程序都是又一句一句的语句组成起来的,如果要想学的好,那么先从基础开始吧 001 程序语句最简单的形式是空语句,使用如下形式.
; // NULL statement 每个空语句都应该加上注释,以便任何读这段代码的人知道该语句是有省略意义的.
// 读入值,直到输入流的结尾或者输入的值与sought相同.
while(cin >> s && s != sought)
;
无关的空语句可能会产生意外的坏处,比如在while或者if后边悄悄的出现个分号(空语句),将会彻底改变程序的结构.
while(iter != svec.end());
++iter; // 这很可能(99.999%)是一个死循环.
002 复合语句通常被称为块,是用一对花括号括起来的语句序列.块标识了一个作用域.
作用域的范围,主要是指定义变量的作用范围.
003 if语句.
if (condition)
statement; // 此处多用于一个块,即使只有一条语句,用一个块来表示也是安全的.
vector类型和string类型,一般不可用作条件.
if (condition)
statement1;
else
statement2;
多分支结构,要注意悬垂else问题: else总是匹配给最后出现的尚未匹配的if子句.
if (condition1)
statement1;
else if (condition2)
statement2;
004 switch case语句,提供一种更方便的方法来实现深层嵌套的if/else逻辑.
使用\"break;\"语句在适当的地方跳出.使用default语句处理case不到的情况.
case标号必须是整型常量表达式.
在switch结构中,只能在它的最后一个case标号或default标号后面定义变量.
005 while语句,当条件为真时,while语句反复执行目标语句.
while(condition) // condition不能为空. [Page]
statement;
while循环的应用.
int *source = arr1;
size_t sz = sizeof(arr1)/sizeof(*arr1);
int *dest = new int[sz];
while (source != arr1 + sz)
*dest++ = *source++; // 书上说,这是一个经典C++简洁表达式的例子,个人认为会误导一些人,
// 对于数组指针这样是可以的,冗余相对很少,可如果是两个对象呢?冗余空间的需求就大了
006 for循环语句.
for(int-statement; condition; expression)
statement;
初始化,判断条件,执行statement,执行expression,判断条件,执行statement,执行expression.
007 do while语句.
do
statement;
while(condition);
注意while后边有个分号,statement语句至少执行一次.
008 break语句用于结束最近的while,do while,for 或switch语句,并将程序的执行权传递给紧接在被终止语句之后的语句.
009 continue语句导致最近的循环语句的当次循环提前结束.
对于while和do while语句,继续求解循环条件,对于for循环,程序流程接着求解for语句头中的expression表达式.
010 try块和异常处理.(本节对异常处理的介绍实在少的可怜)
异常就是程序的不正常情况,例如内存耗尽,或意外的非法输入.异常存在于程序的正常功能之外,并要求程序立即处理.
异常机制提供程序中错误检测和错误处理部分之间的通信,包括: