TC官方合作论坛

标题: 关于多层嵌套循环结构的跳出,你不纠结?为什么没有goto 命令呢? [打印本页]

作者: carewa    时间: 2012-8-10 06:33
标题: 关于多层嵌套循环结构的跳出,你不纠结?为什么没有goto 命令呢?

作者: 梦里只影向你    时间: 2012-8-10 07:21

[attach]4679[/attach]
你想在跳出最里面的循环体后,同时跳出外面两层的话.你可以分别在A,B语句前也加上
第三层的
if(跳出条件)
break
endif
不用变量去控制

作者: carewa    时间: 2012-8-10 07:40
你想在跳出最里面的循环体后,同时跳出外面两层的话.你可以分别在A,B语句前也加上
第三层的
if(跳出条件)
break
endif
不用变量去控制

梦里只影向你 发表于 2012-8-10 7:21:11

不懂装懂
你自己运行下看看是什么结果,真服了你了.break只能跳出当前层循环好吧?那两个变量目的是为了跳出外层循环.最烦你这样的,害我又特意试了一下,浪费 时间

while(a<20)
   a=a+1

while(b<4)
            b=b+1
            if(b==3)
                break
            endif
        endwhile
        help.messagebox("a")
endwhile


作者: 梦里只影向你    时间: 2012-8-10 07:50
回复 3楼carewa的帖子

到底谁没理解谁???我的意思你看明白了???
就是因为break只能跳出当前层,所以你想最里面层跳出后不去执行外面两层的循环了,直接跳出去,所以我说的是,你要一层一层的去break!!!!!!!!!!!!!!!!!!!自己看看我说的什么意思
作者: 陌上青衣。    时间: 2012-8-10 07:57
激烈的讨论

试试每层循环都加入同一跳出条件

条件满足了,逐级跳出
作者: TC兔子    时间: 2012-8-10 07:58
回复 3楼carewa的帖子

我觉得是你没理解他的意思,我的理解是,他让你在外面的两层也加上判断,如果最里面的跳出了,外面的两个判断也会根据这个跳出而进行跳出操作.不是说一个跳出,实现3层的跳出.是3个同样的,或者根据你的安排实行跳出.
第二,论坛里讨论问题,你发出来了,别人解答,是有可能不对,你怎么说你浪费别人时间,你让别人来思考,不也是一个道理么,换位思考,将心比心,大家都是想为你解决问题的.
第三,我用一个不用goto的方法来解决这个跳出.把这个代码写到功能里面,用到了,就调用,想直接跳出最里面的循环,加上判断,如果判断成功就return.想在那里跳出就在那里return.
作者: lyf1314    时间: 2012-8-10 07:58
这冲LZ这态度,我沉默了,我凭什么要教你tc一个循环代替循环套嵌的方法,鉴定完毕
作者: 梦里只影向你    时间: 2012-8-10 07:59
[quote]

你想在跳出最里面的循环体后,同时跳出外面两层的话.你可以分别在A,B语句前也加上
第三层的
if(跳出条件)
break
endif
不用变量去控制

梦里只影向你 发表于 2012-8-10 7:21:11 [/......
carewa 发表于 2012-8-10 7:40:05

不懂装懂
你自己运行下看看是什么结果,真服了你了.break只能跳出当前层循环好吧?那两个变量目的是为了跳出外层循环.最烦你这样的,害我又特意试了一下,浪费 时间


是我在为你的问题浪费时间,你要搞清楚!!!!!!!!!!!!!!!!!!

自己看去



  1.    
  2. int i1=1
  3. int i2=1
  4. int i3=1


  5. while(i1<10)
  6.    
  7.     while(i2<10)
  8.         
  9.         while(i3<10)
  10.             
  11.             if(i3==3)
  12.                 break
  13.             endif
  14.             
  15.             辅助.消息框("i3循环体"+convert.inttostr(i3))
  16.             i3=i3+1
  17.         endwhile
  18.         
  19.         if(i3==3)
  20.             break
  21.         endif
  22.         
  23.         辅助.消息框("i2循环体"+convert.inttostr(i2))
  24.         i2=i2+1
  25.     endwhile
  26.     if(i3==3)
  27.         break
  28.     endif
  29.     辅助.消息框("i1循环体"+convert.inttostr(i1))
  30.     i1=i1+1
  31.    
  32. endwhile
复制代码


花自己的时间,去帮别人的问题解决提些意见,你觉得我浪费你时间,你可以不用看,ok???!!!!!!
作者: 龍吟达人    时间: 2012-8-10 08:06
回复 7楼lyf1314的帖子

蛋蛋兄也激动了。这之所以TC不要GOTO也能体现TC的强大 哈哈 一切知识都在于悉心倾听。
作者: 陌上青衣。    时间: 2012-8-10 08:11
好了

大家都别愤青了

讨论问题嘛,有时候语气难免有点何必搞的那么纠结
作者: carewa    时间: 2012-8-10 12:32
好吧,我道歉,我承认我激动了.  我道歉.我有罪.我只是想知道如何一下 把多层循环中 全总直接跳出,而不是一个一个笨笨的标记,goto 到endwhile下一行的QIUK岂不快哉?goto 最大好的处其实就是在这,满足条件可靠退出,不必搞7搞8再搞二个大王,
作者: carewa    时间: 2012-8-10 12:34
回复 8楼梦里只影向你的帖子

怎么说也谢谢你吧.我承认我激动了
说来说去你还是用的不还是标记法么,内层循环多了,挨个搞一下吗?
无果.
作者: 梦里只影向你    时间: 2012-8-10 15:11
回复 8楼梦里只影向你的帖子

怎么说也谢谢你吧.我承认我激动了
说来说去你还是用的不还是标......
carewa 发表于 2012-8-10 12:34:53
首先:我没发表过用goto好不好,我也是按键转来的。
其次,我只是在你的代码上(我截图那段)提出的一点我自己的想法,虽然这个想法对你没用处,甚至浪费了你时间

截图那段:


[attach]4682[/attach]

我只是针对这段作的一点点想法

最后,我没说过我说的这个是什么goto的完美替代法,只是你太偏激了。你代码里说的是 break只是跳出了最里层循环,想直接跳出所有的循环,然后用变量去控制。
所以我说:你可以外面两层也加上判断,

好了该说的说完了


不纠结这个问题了

免得没完没了 坏心情
拜拜


作者: carewa    时间: 2012-8-11 07:10
[quote]回复 8楼梦里只影向你的帖子

怎么说也谢谢你吧.我承认我激动了
说来说去你还是用的不还是标......
carewa
梦里只影向你 发表于 2012-8-10 15:11:52

怎么说也是谢谢你的想法..
只是就问题说问题,激动了点 ,别在意.

作者: dashabi    时间: 2015-12-16 06:44
没有goto,从内层循环跳不出,要求还要继续外层循环
作者: seaelf    时间: 2017-7-7 20:55
明显的按键精灵思维模式,你这逻辑一开始就不应该这样想的




欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) Powered by Discuz! X3.1