1、一个code block 只做一件事,goto 也有适合使用的场景,如右边的代码。
不要用多份代码做同一件事,不然你修改一个部分别的没有修改容易出错。
正确示范:
HRESULT HrDoSomething(int parameter)
{
//parameter check and initialization
//processing part=1
If(SomeCode()!=ok)
{
//set HR value
Goto Error;
}
if(SomeCode!=ok)
{
//set HR value
Goto Error;
}
Error:
//clean up
return hr;
}
2、goto 的错误用法
benefit =minimum;
if(age<75) goto A;
benefit=maximum;
goto C;
if(AGE<65) goto B;
A: if(AGE<55) goto C;
if(AGE<65) goto B;
benefit=benefit*1.5+bonus;
goto C;
B: if(age<55) goto C;
benefit=benefit*1.5;
C: next statement
if(age<55)
benefit=minimum;
elseif(age<65)
benefit=minimum+bonus;
elseif(age<75)
benefit=minimum*1.5+bonus;
else
benefit=maximum;
学会用控制结构来控制代码,以上是顺序结构
还可以使用二叉树的组织方式,因为每一颗二叉树都是相似的。