回 帖 发 新 帖 刷新版面

主题:在QB中用GOTO语句问题

小弟是菜鸟一个,据说在QB中尽量不要用GOTO语句,但在有些情况下不得不要用,很难用IF THEN ELSE来代替,请问用了一些GOTO语句会导致什么问题呢?程序会不稳定吗?

回复列表 (共15个回复)

沙发

GOTO是无条件转移,不符合现在所说的结构化程序设计.

板凳

GOTO:转移到:XXX: ...
GOSUB:转到并返回:XXX: ...: RETURN
尽量用GOSUB/ON ... GOSUB
而不用GOTO/ON ... GOTO
在GWBASIC里都用 ON ... {GOTO|GOSUB} 但现在不用了                                      

3 楼

QB里面还有的,假如你一定要用的话

4 楼

goto 一般都没什么作用,可以用其他的规范化结构代替,也只有 NOIP 的出题人才会弄一大堆 goto 吃饱了撑的

5 楼

用了GOTO感觉很乱

6 楼

用GOTO跳循环外没有其他用处

7 楼

只有我才喜欢用GOTO

8 楼

GOTO在处理一些简单的问题时,可以减少文件大小,这也许是唯一的好处吧

9 楼

我觉得都不是.

goto 有它一定的价值
我们现在做的结构化程序只是说建议不要使用它
因为它破坏了结构化
有了goto语句对于程序的维护和修改都会出现很大的障碍
当程序越来越大的很多时候你不一定能搞清楚你的路是往哪边走的

goto 的利害之处在于:
它----就是二十二世纪杀人网络里面尼奥穿梭时空的钥匙
对于一些你暂时无法解决的问题, goto 也是没办法的选择.
我也曾试有那种情形:
一句goto能代替一大堆的判断跳转语句体.

10 楼

小弟也有同样问题,下面的这段源码看能否帮小弟修改一下,尽量不用GOTO看能否做到。(注:ZSHY:后面有很多语句的)

IF YN$ < "2" GOTO GQL

     IF XN$ > "6" THEN GOTO ZSHY
      IF XN$ = "6" THEN  GOTO YF
      GOTO GQL
YF:
      IF XY$ > "3" THEN GOTO ZSHY        
      IF XY$ = "3" THEN GOTO RQ
      GOTO GQL
RQ:
       IF XR$ > "2" THEN GOTO ZSHY

GQL:
PRINT "ERR"
ZSHY:
SEHLL "xxx"
......

我来回复

您尚未登录,请登录后再回复。点此登录或注册