回首页 回首页 ◎ 设为首页  
◎ 收藏本站  
◎ 给我留言  
  
  首 页  C/C++教程  C++之父的FAQ  C/C++动向  C/C++源代码  C/C++误区  Unix/Linux  下载中心  乱七八糟  蚂蚁的Blog  
  当前位置:首 页 >> C/C++教程 >> C 语言基础教程 >> 54. goto 语句
最 近 更 新
54. goto 语句
53. switch 语句推荐
52. continue 和 break
51. 条件运算符(?:)
50. if 语句嵌套推荐
49. 逻辑运算符推荐
48. 在循环中使用 if 语句推荐
47. if 和 else 连用推荐
46. if 语句
45. 循环应用实例 2
最 新 推 荐
53. switch 语句推荐
50. if 语句嵌套推荐
49. 逻辑运算符推荐
48. 在循环中使用 if 语句推荐
47. if 和 else 连用推荐
44. 循环应用实例 1推荐
43. 循环嵌套推荐
40. for 循环推荐
37. 关系运算符推荐
36. while 循环推荐
热 门 排 行
2. 第一个 C 程序推荐
31. 预处理指令 #define..推荐
1. C 语言简介
11. 基本数据类型:整型..推荐
24. 运算符的优先级和结..推荐
5. 如何编写函数
30. 字符串字面量推荐
13. 标识符命名规则
36. while 循环推荐
7. 第三个 C 程序推荐
站 内 搜 索

Web stdcpp.cn
关键词

搜索方式

搜索范围

精确匹配
广 告

54. goto 语句


来源:蚂蚁的 C/C++ 标准编程 作者:Antigloss 等级:一般
发布于2007-07-27 09:05 被读2703次 【字体:

    学过 BASIC 或 FORTRAN 的人一定都用过 goto 语句,这个语句在 C 里面同样可以使用。不过,C 不提倡使用 goto 语句,因为 C 完全可以不用它,而滥用它往往会导致程序凌乱不堪、难以阅读和维护。当然,适当地使用 goto 语句也会使程序更加简洁。

    goto 语句的作用是跳转到一条你指定的语句,然后从那条语句开始往下执行。goto 语句的用法很简单,首先在你想要跳往的语句前面加个标签和冒号:

        to: printf("go to here\n");

注意,标签的命名需要符合标识符命名规则

    然后,当你想跳转到该条语句时,使用“goto 标签名;”即可:

        goto to;

    通常,能避免 goto 都应该尽量避免。但是,如果是在陷入了很深层次的循环里想要跳出最外层的循环,用 goto 直接跳出却比用 break 一个循环一个循环地跳出要好得多。例如:

        while ( condition1 )
        {
            // ... ...
            while ( condition2 )
            {
                // ... ...
                while ( condition3 )
                {
                    // ... ...
                    while ( condition4 )
                    {
                        // ... ...
                        goto out_of_loop;
                    }
                }
            }
        }
        out_of_loop:
        // 其它语句

    还有,在深层循环里,如果想跳过余下的语句,直接返回第一层循环,使用 goto 语句也可以大大减少代码量:

        while ( condition1 )
        {
            // ... ...
            while ( condition2 )
            {
                // ... ...
                while ( condition3 )
                {
                    // ... ...
                    while ( condition4 )
                    {
                        // ... ...
                        goto end_of_outmost_loop;
                    }
                }
            }
        end_of_outmost_loop: ;
        }

    总之,goto 可以用,但不能滥用,使用前请务必三思。其实,你可以将 break 和 continue 理解成弱化了的 goto 语句。而我们上面所举的两个例子可以理解成强化了的 break 和 continue。

参考资料:C Primer 5th Edition

本文版权归 蚂蚁的 C/C++ 标准编程 以及 作者 Antigloss 共同所有,转载请注明原作者和出处。谢谢。



相关专题:C 分支语句
53. switch 语句
52. continue 和 break

上一篇:53. switch 语句
下一篇:无相关文章

共有评论 3 条 网友评分 1分 查看全部评论

游客:111
评分:0
单片机的C程序设计中有这样一条语句:
inval=P1&0x0F;//从P1读位0-3   我不太明白这里是什么意思。inval初始值为0,sfrP1=0x90.
游客:antigloss
评分:0
去补充一下二进制的知识吧
游客:anti
评分:0
goto 很好用,有时可以提高效率,可是从结构化程序设计的提出,我们就应该注意它的使用。

查看全部评论

【发表评论】 评分:1分 2分 3分 4分 5分


验证码:

Powered By Www.Xydw.COM Ver1.14 管理
Copyright © 2005-2006 蚂蚁的 C/C++ 标准编程 All Right Reserved. XCMS
粤ICP备06014124号   站长:Antigloss