[应用相关] C语言中不要使用“GOTO”语句

[复制链接]
616|7
 楼主| OKAKAKO 发表于 2024-1-29 14:00 | 显示全部楼层 |阅读模式

GOTO 语句最早源于汇编语言的跳转,在很多年前,计算机的变成还处于起步阶段,C语言开始也是寻着汇编的思路来设计的,因此就遗留下了这么一个 GOTO 语句,允许程序员自由的在代码间翱翔。使用GOTO语句的例子

  1. #include <stdio.h>

  2. int main() {
  3.     int i = 0;

  4.     // 使用goto语句的简单示例
  5.     goto start;

  6. loop:
  7.     printf("Inside loop: %d\n", i);
  8.     i++;

  9. start:
  10.     if (i < 5)
  11.         goto loop;

  12.     printf("Loop finished.\n");

  13.     return 0;
  14. }

这种 goto 语句用起来简单,但是整体程序如果来回跳转,读起来会非常的困难,非常绕,并且 GOTO 语句还存在以下问题:

可读性差: 使用goto语句的代码通常会变得难以理解,因为它允许在程序中跳转到不同的标签位置。这使得代码流程变得不清晰,增加了理解代码的难度。
难以维护: 当代码包含大量goto语句时,很容易导致代码的维护困难。修改代码或添加新功能时,必须仔细考虑goto语句的影响,以防止引入错误。
错误的使用可能导致问题: 如果不小心使用了错误的标签,或者在不当的位置使用goto,可能导致程序的不正确行为。这种错误可能难以追踪和修复。
不利于结构化编程: 使用goto语句可能违背结构化编程的原则,使得代码难以按照清晰的结构组织。结构化编程强调使用顺序结构、选择结构和循环结构来构建清晰、可读、可维护的代码。
不利于调试: 调试时,跳转语句会使程序的执行路径变得复杂,增加了调试的难度。代码中的跳转可能使得代码不易于单步调试,阻碍了查找和修复错误的过程。
tpgf 发表于 2024-2-1 13:41 | 显示全部楼层
从上学的时候老师就不建议我们使用这个语句
zljiu 发表于 2024-2-1 14:33 | 显示全部楼层
可能是因为goto语句的可读性以及可维护性不好
tfqi 发表于 2024-2-1 18:38 | 显示全部楼层
在c语言编程中,如何对代码段定义标签呢
gwsan 发表于 2024-2-1 19:09 | 显示全部楼层
如果goto后边什么都不跟,那么程序会运行到哪里去呢
aoyi 发表于 2024-2-1 19:43 | 显示全部楼层
现阶段使用goto语句难道就米有什么优点了吗
nawu 发表于 2024-2-1 20:17 | 显示全部楼层
我怎么看着这个代码有点不像是c语言的代码呢
sfd123 发表于 2024-2-2 16:17 | 显示全部楼层
能不用就不用,可是你知道 有时候用一下   开心到起飞啊!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

264

主题

2144

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部