第十五章 使用条件语句

 

15.1 if语句

 

if语句遵循以下指导原则

1、先写正常代码路径,在处理不常见情况

2、确保if判断条件正确

3、把正常的情况放在if后而不是else后

//随意的if{}else{}结构
if(status==status_error){
	//todo
}else{
	if(status==status_success){
		//todo
	}else{
		if(status==status_error){
			//todo
		}else{
		
		}
	}
}

把决策的结果代码放在尽可能靠近决策的位置  

if(status==status_success){
	//todo
	if(status==status_success){
		//todo
		if(status==status_success){
			//todo
		}else{
			errorType=...
		}
	}eles{
		errorType=...
	}
}else{
	errorType=...
}

4、让if字句后跟随一个有意义的语句

if(status){
	;
}else{
	//todo
}

 if语句是空的,应避免这种代码 

if(!status){
	;
}

 5、考虑else子句 

if(age>0 && age<150){
	//todo
}else{
	//else age invalid
}

 除非其原因显而易见,佛则用注解来解释为什么不需要else

6、测试else子句的正确性

7、检查if和else子句是不是弄反了

8、利用boolean变量或函数简化负责的检测

把一个复杂的表达式赋给一个命名准确的变量或函数是一个很好的选择。

//避免这种情况
if(param1==1 || parma==2 || (parma3 && param4)){
}
//变量可以简化表达式
if(status1== true || status2== true || status3== true ){
}
//函数也可以
if(function1()== true || function2()== true || function3()== true ){
}

 9、把常见的情况放倒前面

10、确保所有的情况都考虑到了

 

if(status==1){
}else if(status==2){
}else if(status==3){
}else if(status==4){
}else{
	//记录出错信息或没有考虑到的情况
}
 11、如果语言支持把if-then-else替换为其它结构

 

15.2 case语句

 

为case语句排序

1、按字母顺序

2、把正常情况方前面

3、按执行频率排列

 

不要把很多逻辑代码本身放在一个case子句里,通过一函数调用更好。

如果case语句中的default没有其它作用,使用default来检测错误。

C++和Java中避免代码执行越过第一条case子句。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(第十五章 使用条件语句)