专栏首页计算机二级C语言为什么不建议使用goto语句

为什么不建议使用goto语句

现在老师上课基本上不怎么讲goto语句,很多文章也提到不建议使用,那到底是为什么呢?

首先,可以证明,任何一个程序都可以使用三种基本的结构来构成,goto语句是多余的。为什么三种基本的程序结构就够了?

另外,goto容易使程序结构混乱。按结构化程序设计方法设计出的程序优点是:结构良好、各模块间的关系清晰简单、每一模块内都由基本单元组成。这样设计出的程序清晰易读,可理解性好,容易设计,容易验证其正确性,也容易维护。

那goto语句就没有一点好处吗?有,合理恰当使用goto可以优化程序设计,提高可读性。

任何一个结构化程序在编译以后都是需要用机器语言中的直接转移指令语句(同goto完全是一回事)来实现其结构的。在编译时,编译系统常常为了对程序进行优化而加入直接转移指令。汇编语言里面jump和goto类似。

用goto语句还能提高程序可读性?回答是肯定的。滥用goto是会破坏程序的可读性,但合理地使用goto语句,除了能提高程序的效率外,还是有可能增加程序的可读性的。

总的来说,对于初学者,还是应该尽量避免。如果你已经很了解程序了,确定goto会有所帮助,也是可以用的。

本文分享自微信公众号 - 计算机二级C语言(gh_044a0595bf44),作者:计算机二级C语言

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-03-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • C语言入门笔记3

    函数调用语句由函数名、实际参数加上分号“;”组成。执行函数语句就是调用函数体并把实际参数赋予函数定义中的形式参数,然后执行被调函数体中的语句,求取函数值。通过调...

    用户6755376
  • 12寒假专辑:八、C语言其他考试重点

    1)字符串的 strlen() 和 strcat() 和strcmp() 和strcpy()的使用方法一定要记住。他们的参数都是地址。其中strcat() 和s...

    用户6755376
  • 编写C程序的7个步骤

    很多人觉得编写一个C语言程序是个很复杂的问题,但其实是很简单的,至少对于二级C考试题目来说都比较简单。面对一个相对复杂的问题,我们要学会理清楚思路,把它分解成若...

    用户6755376
  • 「C语言」编程学习—控制语句goto语句解析!

    C语言共有9种控制语句:if/else,for,while,do-while,switch/case,break,continue,return,goto。

    猫咪爱分享
  • 循环神经网络模型

    一个标准的循环神经网络如图所示,在网络的每一个时间步ttt,它接受前一层的激活函数值a&lt;t−1&gt;a^{&lt;t-1&gt;}a<t−1>和输入x&...

    Steve Wang
  • 直观理解为什么分类问题用交叉熵损失而不用均方误差损失?

    对比交叉熵损失与均方误差损失,只看单个样本的损失即可,下面从两个角度进行分析。

    李拜六不开鑫
  • 刷脸背后,卷积神经网络的数学原理原来是这样的

    在自动驾驶、医疗以及零售这些领域,计算机视觉让我们完成了一些直到最近都被认为是不可能的事情。今天,自动驾驶汽车和无人商店听起来不再那么梦幻。事实上,我们每天都在...

    机器之心
  • SouapUI接口测试之入门示例

    SoapUI是一个开源测试工具,通过soap/http来检查、调用、实现Web Service的功能/负载/符合性测试。该工具既可作为一个单独的测试软件使用,也...

    用户6367961
  • 卷积神经网络数学原理解析

    原标题 | Gentle Dive into Math Behind Convolutional Neural Networks

    AI科技评论
  • 独家 | 一文带你上手卷积神经网络实战(附数据集、学习资料)

    原文标题:Understanding deep Convolutional Neural Networks with a practical use-case ...

    数据派THU

扫码关注云+社区

领取腾讯云代金券