if语句
简单的if语句
在写if语句的时候请遵循下述指导原则:
1、确保对于等量的分支是正确的:即不要用>代替>=
2、if子句后面跟随一个有意义的语句,不要跟空语句
3、认真考虑是否真的不需要一个else子句
4、测试代码的时候,有可能的话else子句也一定要测试它
5、首先写正常代码路径,再处理不常见的情况;把正常情况的处理放在if后面而不要放在else后面
VB例子:随意的处理大量错误的代码
OpenFile (InputFile,Status)
if Status=Error then
ErrorType=FileOpenError ——错误情况
else
ReadFile(InputFile,FileData,Status) ——正常情况
if Status= Success then
SummarizeFileData(FileData,SummaryData,Status) ——正常情况
if Status=Error then
ErrorType=DataSummaryError —一错误情况
else
PrinSummary(SummaryData)
SaveSummaryData(SummaryData,Status)
if Status=Error then
ErrorType=SummarySaveError ——错误情况
else
UpdateAllAccounts ——正常情况
EraseUndoFile
ErrorType=None
end if
end if
else
ErrorType=FileReadError ——错误情况
end if
end if
VB例子:系统的处理大量错误的代码
OpenFile(InputFile,Status)
if Status<>Etror then
ReadFile(InputFile,FileData,Status) ——正常情况
if Status=Success then
SummaryFileData(FileData,SummaryData,Status) ——正常情况
if Status<>Error then
PrintSummary(SummarData) ——正常情况
SaveSummaryData(SummaryData,Status)
if Status<> Error then
UpdateAllAccounts ——正常情况
EraseUndoFile
ErrorType=None
else
ErrorType=SummarySaveError /* 错误情况 */
end if
else
ErrorType = DataSummaryError /* 错误情况 */
end if
else
ErrorTyre = FileReadError /* 错误情况 */
end if
else
ErrorType=FileOpenError /* 错误情况 */
end if
在修改之后的例子里,使人集中阅读主程序流而不是费力地去寻找异常情况。
if else-if else语句串
C++:使用if else if 语句对字符分类
if( InputChar < SPACE )
CharType=ControlChar;
else if( InputChar==' ' || InputChar==',' || InputChar=='.' ||
InputChar=='!' || InputChar=='(' || InputChar==')' ||
InPutChar==':' || InputChar==';' || InputChar=='?' || InPutChar=='-' )
CharType=Punctuation;
else if( '0' <= InputChar && InputChar <= '9' )
CharType=Digit;
else if( 'a' <= InputChar && InputChar <= 'z' ) || ( 'A' <= InputChar && InputChar <= 'Z' )
CharType=Letter;
在使用上述语句串的时候,注意下面指导原则:
1、利用布尔函数调用简化复杂的检测: 将上面判断条件封装成类似IsDigit(InputChar)的布尔函数
2、把常见的情况放在最前面: 方便阅读代码,提升代码执行效率
3、确保所有情况都考虑到: 类似case语句最后的default,要在if else的最后写一个else语句,打印出不在当前判断的区域内。
4、尽量不要是用else if ,替换成case之类的
case语句
case语句的指导原则:
1、为case选择最有效的排列顺序
(1)把各种情况按字母或数字顺序组织
(2)把正常情况的事件放在最开始
(3)按出现频率排列case语句
2、使用case语句的诀窍
(1)简化各种情况对应的操作:每种情况对应的代码短小精悍,如果某种情况的操作非常复杂,就写一个子程序。
(2)不要为了用 case 语句而去定义伪交量:C++case只能是整数,不能为了满足这个要求而去检测一个字符串的首字符。
(3)把default子句用于检查真正的默认情况,如果没有默认情况,使用default来检测错误。
(4)每条case语句后面都应该加break;如果执行多条,应该在默认明确无误的表明需要穿越的流程。
要点
1、注意 if 和 else 的顺序,特别是在处理好多异常情况时,务必使正常情况流向清晰。
2、组织好 if-then-else 和 case 语句中的几种情况,使可读性最好。
3、在 case 语句中用缺省值,在 if-then-else 中的最后一个 else 中获取意外错误。
4、各种控制结构并不都同样有用,在编码时选用最合适的控制结构。