| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2379 人关注过本帖
标题:在代码中使用 goto 被别人笑话了
只看楼主 加入收藏
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
结帖率:94.72%
收藏
已结贴  问题点数:20 回复次数:26 
在代码中使用 goto 被别人笑话了
有人说 goto 已经过时了, 你怎么看呢?
搜索更多相关主题的帖子: goto 笑话 代码 
2010-09-15 09:26
A13433758072
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广东潮州
等 级:小飞侠
威 望:1
帖 子:1182
专家分:2784
注 册:2010-7-22
收藏
得分:1 
绝大部分程序不适合用

一步一个脚印...............................默默地前进.....
诚邀乐于解答c菜鸟问题,的热心网友加入,  QQ群38490319
2010-09-15 09:32
遮天云
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:农村一小伙
等 级:贵宾
威 望:12
帖 子:1132
专家分:2671
注 册:2010-6-1
收藏
得分:1 
我们老师也建议少用或者不用
2010-09-15 09:42
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
收藏
得分:0 
回复 3楼 遮天云
你不妨请教下你的老师什么时候应该用 goto, 我觉得 goto写出来的代码更具有 结构性。

我就是真命天子,顺我者生,逆我者死!
2010-09-15 09:47
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
收藏
得分:0 
举个简单的例子吧,
#include <stdio.h>
#include <string.h>

char max(char a[], int l, int r);
int main(void)
{
    char *s = "TINYEXAMPLE" ;
    char ret = 0;
    ret = max(s, 0, strlen(s)-1);
    getchar();
    return 0;
}
char max(char a[], int l, int r)
{
    char u, v, t;
    int m = (l+r)/2;
    if (l == r)
    {
        t = a[l];
        goto END;
    }
    u = max(a, l, m);
    v = max(a, m+1, r);
    if (u > v)
    {
        t = u;
        goto END;
    }
    else
    {
        t = v;
        goto END;
    }
END:
    return t;
}

我就是真命天子,顺我者生,逆我者死!
2010-09-15 09:58
毕业旅行
Rank: 4
等 级:业余侠客
威 望:1
帖 子:130
专家分:280
注 册:2010-7-7
收藏
得分:1 
以下是引用BlueGuy在2010-9-15 09:58:25的发言:

举个简单的例子吧,
#include
#include

char max(char a[], int l, int r);
int main(void)
{
    char *s = "TINYEXAMPLE" ;
    char ret = 0;
    ret = max(s, 0, strlen(s)-1);
    getchar();
    return 0;
}
char max(char a[], int l, int r)
{
    char u, v, t;
    int m = (l+r)/2;
    if (l == r)
    {
        t = a[l];
        goto END;
    }
    u = max(a, l, m);
    v = max(a, m+1, r);
    if (u > v)
    {
        t = u;
        goto END;
    }
    else
    {
        t = v;
        goto END;
    }
END:
    return t;
}
话说排斥GOTO是因为用在循环里容易出错吧,你的例子没涉及到循环唉,我也觉得蛮好看的
其实BG大大是想表达不要一味的跟风别人不加思考的去否定一些东西吧
2010-09-15 11:06
vandychan
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
等 级:贵宾
威 望:18
帖 子:2296
专家分:6418
注 册:2010-8-20
收藏
得分:1 
C用GOTO尽可避免吧 但是不是不可以用

但是C++用GOTO??就真的不搭调了

到底是“出来混迟早要还”还是“杀人放火金腰带”?
2010-09-15 12:20
遮天云
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:农村一小伙
等 级:贵宾
威 望:12
帖 子:1132
专家分:2671
注 册:2010-6-1
收藏
得分:0 
以下是引用BlueGuy在2010-9-15 09:47:16的发言:

你不妨请教下你的老师什么时候应该用 goto, 我觉得 goto写出来的代码更具有 结构性。
呃!我可能水平不够吧!还真没用过goto
2010-09-15 12:22
Alar30
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:10
帖 子:988
专家分:1627
注 册:2009-9-8
收藏
得分:1 
关键是使用的时机吧
编程手段只有实用的
没有过时一说
2010-09-15 12:43
makebest
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:658
专家分:962
注 册:2005-3-17
收藏
得分:1 
goto 适合用于跳出2层及以上的循环
2010-09-15 12:53
快速回复:在代码中使用 goto 被别人笑话了
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.036263 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved