怎样消除goto语句
来源:互联网 发布:php exec无法执行 编辑:程序博客网 时间:2024/04/28 22:08
// 今天心情好差啊!暗恋已经暗恋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语句跨函数,跨程序,那就比较棘手了。你必须把函数先整合到一起,再用上面的方法进行修改哦啊!!!!
咳得厉害不写了 !!!!!
- 怎样消除goto语句
- do while(0)的另一个用途:消除goto语句。
- do while(0)的另一个用途:消除goto语句
- 在程序中,你敢怎样使用“goto”语句!
- goto语句
- goto语句
- goto语句
- goto语句
- goto语句
- goto语句
- goto语句
- goto语句
- goto语句
- goto语句
- goto语句
- goto语句
- goto语句
- goto语句
- 深入浅出 详解Android Surface系统(1)
- 通过Wifi调试Android程序
- HDU 1212 ( Big Number )
- 基于链表:键盘输入若干个整数,按输入数据逆序建立一个带头结点的单链表
- 决胜职场不可复制的10项软实力
- 怎样消除goto语句
- 注解之Spring
- 完美解决:Could not open the editor: Editor could not be initialized
- sgu103
- 常见SQL语句
- php header详细用法
- EditText相关内容
- ASP.NET MVC学习
- 第七周实验报告2(修正版)