怎样消除goto语句 |
您所在的位置:网站首页 › goto指令怎么暂停 › 怎样消除goto语句 |
// 今天心情好差啊!暗恋已经暗恋6年的女孩了!而且今天感冒了一直咳嗽!注意:大家感冒吃枇杷露时候一定不能吃红枣的!// goto 语句可以灵活跳转,如果不加限制,它的确会破坏结构化设计风格。其次,goto 语句经常带来错误或隐患。 其实在linux编程中goto语句还是经常会使用到的很方便!特别是自己编写的一些小程序中。 你可以很轻松的 在网上找到这样的消除goto的示例! if(condition1) goto label; …… if(condition2) goto label; …… label: do_something. …… 则可以使用 do{ …… }while(0); 来代替goto. 代码如下: do{ …… if(condition1) break; …… if(condition2) break; …… }while(0); //label: do_something. …… 切记其实goto语句和消除goto语句在本质上都是没有变化的都是通过修改ip来改变下一条程序指令的入口地址。结构化编程益于理解而已。上例中的label:出现在goto的后面!如果出现在前面呢这是我想讨论的 ! label: code1.。。。 if(condition1) goto label; code2.。。。 if(condition2) goto label; code3.。。。 如果还采用上述的办法显然是不行的! 此时可以改写为 //label: code1.。。。 while(condition1) { code1.。。。} code2.。。。 while(codition2) { //label: code1.。。。 while(condition1) { code1.。。。} code2.。。。 } code3.。。。 其实可能会猜想如果就是单纯的goto呢?? label: code1.。。。 goto label; code2.。。。 这样就会产生无限循环。没多大意义。但是在系统程序中也许有意义的呃!这个的修改很简单。 do { code1.。。。 }while(1) code2.。。。 但是如果goto语句跨函数,跨程序,那就比较棘手了。你必须把函数先整合到一起,再用上面的方法进行修改哦啊!!!! 咳得厉害不写了 !!!!! |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |