1. 在C中对象的定义并不被视为C语言的语句,块中的所有对象定义必须出现在任何程序语句之前;由于对象的定义是C++语言的一条语句,所以可以将对象定义放在任何其他语句能够出现的地方。
2. 在condition 中定义的对象只在与if 相关的语句或语句块中可见。
3. C和C++中关键字case后面的值必须是一种整数类型的常量表达式,另外任意两个case 标签不能有同样的值,如果有则导致编译错误。
4. 普遍的误解是:只有与被匹配的case标签相关联的语句才被执行,实际上程序从该点开始执行并继续越过case边界直到switch语句结束。
5. 程序员必须显式地告诉编译器停止执行switch中的语句,这可以通过在switch 语句内的每个执行单元后指定一个break 语句来完成,在大多数条件下一个case标签的最后一条语句是break。
6. 声明语句也可以被放在switch语句的条件中如下所示switch( int ival = get_response() );ival 在整个switch语句中是可见的,但在其外面并不可见。
7. expression表达式在循环每次迭代后被计算,一般用它来修改在init-statement中被初始化的在condition中被测试的变量,如果condition 的第一次计算结果为false,则expression从不会被计算。
8. for循环中,在init-statement 中可以定义多个对象,但只能出现一个声明语句。因此所有对象都必须是相同的类型。
9. 不像其他循环语句,do while循环的条件(即condition 部分)不支持对象定义。
10. 如果一个break 语句出现在if 语句的内部,但是并不被包含在switch 或循环语句中,那么这样的break语句将导致编译错误。例如:
// 错误: break 语句的非法出现
if ( ptr ) {
if ( *ptr == "quit" )
break;
// ...
}
一般来说break 语句只能出现在循环或switch 语句中。
11. break语句终止最近的while,do while,for或switch 语句;continue 语句导致最近的循环语句的<font color=red>当前迭代</font>结束,执行权被传递给条件计算部分,continue 语句只有出现在循环语句中才是合法的。