为什么都不建议用goto语句进行跳转呢?

如题所述

GOTO语句使程序的静态结构和动态结构不一致,从而使程序难以理解,难以查错。

goto语句的结果:在C/C++等高级编程语言中保留了goto语句,但被建议不用或少用。在一些更新的高级编程语言,如Java不提供goto语句,它虽然指定goto作为关键字,但不支持它的使 用,使程序简洁易读;尽管如此后来的c#还是支持goto语句的,goto语句一个好处就是可以保证程序存在唯一的出口,避免了过于庞大的if嵌套。

goto语句

goto语句也称为无条件转移语句,其一般格式如下: goto 语句标号; 其中语句标号是按标识符规定书写的符号, 放在某一语句行的前面,标号后加冒号(:)。语句标号起标识语句的作用,与goto 语句配合使用。

如: label: i++;

loop: while(x<7);

C语言不限制程序中使用标号的次数,但各标号不得重名。goto语句的语义是改变程序流向, 转去执行语句标号所标识的语句。

goto语句通常与条件语句配合使用。可用来实现条件转移, 构成循环,跳出循环体等功能。

温馨提示:内容为网友见解,仅供参考
无其他回答

为什么不提倡使用goto语句
1、在程序比较简单时用goto语句是比较灵活的,但是当程序比较复杂时很容易造成程序流程的混乱。2、利用goto语句编写程序,对于后面看程序的人是很难理解的。3、调试程序的过程也会变得很困难。

为什么都不建议用goto语句进行跳转呢?
GOTO语句使程序的静态结构和动态结构不一致,从而使程序难以理解,难以查错。goto语句的结果:在C\/C++等高级编程语言中保留了goto语句,但被建议不用或少用。在一些更新的高级编程语言,如Java不提供goto语句,它虽然指定goto作为关键字,但不支持它的使 用,使程序简洁易读;尽管如此后来的c#还是支持goto...

为什么都不建议用goto语句进行跳转呢?我觉得挺方便啊!
GOTO语句使程序的静态结构和动态结构不一致,从而使程序难以理解,难以查错。有人认为GOTO语句使用起来比较灵活,而且有些情形能提高程序的效率。1974年,D·E·克努斯对于GOTO语句争论作了全面公正的评述,其基本观点是:不加限制地使用GOTO语句,特别是使用往回跳的GOTO语句,会使程序结构难于理解,在这种...

c语言为什么不能用goto写循环
goto是一个有争议的语句,许多书本建议少用或不用它,是因为它是无条件跳转目标,不符合结构化程序设计的思想,还有就是从程序书写规范和易读角度说,经常使用goto语句会使代码混乱(你没事跳转来跳转去 ,会搞得整个程序,只有你自己看得懂,也许跳个十几次之后,你自己也会看不懂)。goto语句不是不...

...一些判断时很实用,但为什么书上说宁愿加强循环也不用goto语句...
主要理由是:GOTO语句使程序的静态结构和动态结构不一致,从而使程序难以理解,难以查错。去掉GOTO语句后,可直接从程序结构上反映程序运行的过程。这样,不仅使程序结构清晰,便于理解,便于查错,而且也有利于程序的正确性证明。后来从理论上证明了:任何程序都可以用顺序、分支和重复结构表示出来。这个结论...

为什么不提倡使用goto语句?
goto语句即转移指令,是将cpu的当前的指令指针ip直接更改为goto语句指向的指令地址,然后从该地址继续往后执行。从汇编语言的角度来说,goto语句对应汇编语言的jmp指令,但汇编语言的危险在于jmp指令的跳转是不受约束或约束较少,机器指令级级别是可以随意跳转的,除非在执行前对指令进行严格检查,这其实是...

我总算知道为什么那么多人反对使用goto了
其实还有一个原因就是会严重降低程序的可读性,特别是goto语句

goto的优点与缺点?
使用goto语句的优点:1、使用goto语句,可以更改程序执行的正常顺序,因此可以跳转到程序的任何部分。使用goto语句的缺点:1、使用goto语句,因为它会使程序逻辑非常复杂,不易阅读。2、使用goto使得分析和验证程序(尤其是涉及循环的程序)的正确性的任务非常困难。1968年,E·W·代克斯特拉首先提出“GOTO语句...

goto语句是有害的吗?
可以说是有害的。因为在程序调试时不容易发现错误在那里。可以说是不赞成多用GOTO语句。但也不反对用的。既然有这个语句就一定有他的作用的。

C语言语句中可以用goto跳转吗
C语言语句中可以用goto跳转吗  C语言可以用goto语句,但goto语句是非结构化程序设计时代的产物,现在一般都不推荐用,因为大部分可以使用goto语句的场景,均可以使用其他的的语句代替。当然目前可以考虑的一个使用goto的情境是从一个深度的循环嵌套中跳出,它要比用break有效的多。举例用伪代码表达如下...

相似回答