取代goto语句的方法

许多程序设计文章,包括某些教材,都反对goto语句的滥用,甚至强调不用goto语句。
问题在于对于某些程序逻辑,一些初学者找不到更好的替代方法,下面给出两个常用技巧以解决这个问题。
1。利用do...while(0)语句
对于较深的if_then嵌套,当某个条件满足时,需要跳出整体判断逻辑,此时取代goto的就是break,例如:

   do
         if cond1 then
              if cond2 then
                   break;//
              else
                   do_other
              endif
        else if
              break;//
        else
              dothing
        endif
   while(0)
   ...

看似没有意义的语句,确发挥了意料之外的作用,此方法适用于大部分语言。
一些开放源代码项目,如果是c语言代码,多采用此策略。
2。利用异常机制
显然这个方法需要语言具有异常机制,对于一个较长的程序段,加上内部逻辑嵌套较为繁杂,如果采用抛异常的方法,既可以轻松转向,又可以捕获相应的程序状态,下面是一段c++事例代码:
{
 class do_failed{};//在这个类中可以定义相应的提示信息

try{ 
           res=dofun1();
          if(res)
          {
                     throw do_failed(res);
          }
            res=dofun2();
           if(res)
          {
                      throw ftp_failed(res);
         }
         if(dofun3())
          {
                       throw ftp_failed();
          }
 
           dofun();

           return true;
 
}catch(...)
{
            do_failed.msg();
            return false;
}
}
利用异常机制应该算是比较完善的解决方案。从以上两个例子,也可以体会到策略和机制的区别。
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 

其他文章:

.NET 与安全性—— 数据加密算法

在VC中使用 Flash 美化你的程序

C语言面试题大汇总

指定内存0X000000不能为只读的错误分析

调频电子琴的c源码

你可能感兴趣的:(C++,加密,面试,Flash,Class,语言)