现在的位置: 首页 > 综合 > 正文

取代goto语句的方法

2014年02月07日 ⁄ 综合 ⁄ 共 1262字 ⁄ 字号 评论关闭

许多程序设计文章,包括某些教材,都反对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源码

抱歉!评论已关闭.