1.6,if、else 组合
1.6.1,bool 变量与“零值”进行比较
bool bTestFlag = FALSE;
C), if(bTestFlag); if(!bTestFlag);
1.6.2, float 变量与“零值”进行比较
float fTestVal = 0.0;
B), if((fTestVal >= -EPSINON) && (fTestVal <= EPSINON)); //EPSINON 为定义好的 精度。
1.6.3,指针变量与“零值”进行比较
int*p=NULL;//定义指针一定要同时初始化,指针与数组那章会详细讲解。
C) , if(NULL == p); if(NULL != p);
1.6.4,else 到底与哪个 if 配对呢?
【建议 1-16】程序中的分界符‘{’和‘}’对齐风格如下:
注意下表中代码的缩进一般为 4 个字符,但不要使用 Tab 键,因为不同的编辑器 Tab 键定义 的空格数量不一样,别的编辑器打开 Tab 键缩进的代码可能会一片混乱。
1.6.5,if 语句后面的分号
if(NULL != p) ; fun();
等效于:if(NULL != p){;} fun();
尽量写成:if(NULL != p){NULL;} fun();
1.6.6,使用 if 语句的其他注意事项
【规则 1-17】先处理正常情况,再处理异常情况。
【规则 1-18】确保 if 和 else 子句没有弄反。
1.7,switch、case 组合
1.7.1,不要拿青龙偃月刀去削苹果
if、else 一般表示两个分支或是嵌套表示少量的分支,但如果分支很多的话......还是用 switch、case 组合吧。其基本格式为:switch(variable) { case Value1: //program code break; case Value2: //program code break; case Value3: //program code break; ... default: break; }
【规则 1-19】每 个 case 语句的结尾绝对不要忘了加 break,否则将导致多个分支重叠(除非 有意使多个分支重叠)。
【规则 1-20】最后必须使用 default 分支。即使程序真的不需要 default 处理,也应该保留 语句:default : break;
1.7.2,case 关键字后面的值有什么要求吗?
记住:case 后面只能是整型或字符型的常量或常量表达式(想想字符型数据在内存里 是怎么存的)。
1.7.3,case 语句的排列顺序
【规则 1-21】按字母或数字顺序排列各条 case 语句。
【规则 1-22】把正常情况放在前面,而把异常情况放在后面。
如果有多个正常情况和异常情况,把正常情况放在前面,并做好注释;把异常情况放在 后面,同样要做注释。比如:
switch(variable)
{
///////////////////////////////////////////////////////////////////////////////////
//正常情况开始
case A:
//program code
break;
case B:
//program code
break;
//正常情况结束
//////////////////////////////////////////////////////////////////////////////////////
//异常情况开始
case -1:
//program code
break;
//异常情况结束
//////////////////////////////////////////////////////////////////////////////////////
...
default:
break;
}
【规则 1-23】按执行频率排列 case 语句
1.7.4,使用 case 语句的其他注意事项
【规则 1-24】简化每种情况对应的操作。
【规则 1-25】不要为了使用 case 语句而刻意制造一个变量。
【规则 1-26】把 default 子句只用于检查真正的默认情况。
1.8,do、while、for 关键字
C 语言中循环语句有三种:while 循环、do-while 循环、for 循环。
1.8.1,break 与 continue 的区别
break 关键字很重要,表示终止本层循环。现在这个例子只有一层循环,当代码执行到 break 时,循环便终止。
continue 表示终止本次(本轮)循环。当 代码执行到 continue 时,本轮循环终止,进入下一轮循环。
while(1)也有写成 while(true) 或者 while(1==1) 或者 while((bool) 1)等形式的,效果一 样。
do-while 循环:先执行 do 后面的代码,然后再判断 while 后面括号里的值,如果为真, 循环开始;否则,循环不开始。其用法与 while 循环没有区别,但相对较少用。
for 循环:for 循环可以很容易的控制循环次数,多用于事先知道循环次数的情况下。