TC官方合作论坛

标题: 子程序跳出不跳进 [打印本页]

作者: 379075696    时间: 2013-9-5 21:21
标题: 子程序跳出不跳进
主要功能使用一直循环,在判断达到某个条件的时候跳到子程序操作,如果在子程序的结尾不加入跳转,
是不是一旦子程序操作完,那么就会终止

作者: dongyijun1979    时间: 2013-9-5 22:25
子程序运行完后就会自动跳回到主程序,从刚才那句调用语句的下一行继续运行

据我所知,目前地球上所有的程序都是这样运行的。这跟处理器架构有关,机器就是这样设计的,跟语言无关。
作者: xiaoling2013    时间: 2013-9-5 22:36
回复 2楼dongyijun1979的帖子

人家是火星来的
作者: 379075696    时间: 2013-9-5 22:41
但是奇怪的是,只操作了一次,就停止了,,没有返回到循环运行,我也是和你一样认为的,象按键也是那样的,但是他确停止了
作者: 379075696    时间: 2013-9-5 22:46
不然,你们可以测试一下,
无限循环
判断
条件相同跳转到子程序
到子程序的时候就不会跳回去无限循环了是不是要加入返回 真 呢?

作者: dongyijun1979    时间: 2013-9-5 23:02
那是你流程有问题了。
一般人写一般的代码基本不用跳转语句。
代码发上来或者截取关键部分,叫大家伙帮你瞧瞧
作者: 379075696    时间: 2013-9-5 23:08
循环(真)
        
     
      
        如果(x>0)
            
            
            辅助.等待(1)   
            跳转 标记1
           
            如果结束
        
        
        
     


        
    循环结束
         标记1:
   鼠标移动
作者: dongyijun1979    时间: 2013-9-5 23:16
没看见调用子程序的痕迹呀

只是看见 :  当x>0的时候跳出了循环体

你干脆把完整代码发上来吧? (你又不是做了个多NB的东东,不存在源码泄露的风险
作者: 379075696    时间: 2013-9-5 23:17
他只跳转到标记1 操作完,就不动了
作者: 379075696    时间: 2013-9-5 23:18
如果是按键,在完成以后,循环是不会停止的
作者: dongyijun1979    时间: 2013-9-5 23:21
问题是:这不是你说的那个跳来跳去的按键,这是TC
你再不把代码发上来我就走人了
作者: 379075696    时间: 2013-9-5 23:25
空间 跳转演示
//默认空间
功能 循环嵌套()
    循环(真)
    变量 计次
    遍历(第一层=0;第一层<5;第一层++)
        遍历(第二层=0;第二层<5;第二层++)
标记1://父代码块标记
            辅助.消息框("我是标记1")
            遍历(第三层=0;第三层<50;第三层++)
                计次++
                列表框.增加文本("列表框0",计次)//做自加 并把信息输出到列表框里面
                如果(计次==40)
                    辅助.消息框("开始跳往标记1")
                    跳转 标记1//跳转去父代码块
                如果结束
                如果(计次==60)
                    辅助.消息框("开始跳往标记2")
                    跳转 标记2//跳转去父代码块
                如果结束
            遍历结束
        遍历结束
    遍历结束
    返回 真//在这里大家一定要注意了,//如果没有执行goto的话,又没有返回值,函数将会执行行完下面的所有代码
    循环结束
    辅助.消息框("我是一个错误信息,我不会出现")
标记2://父代码块标记
    鼠标.左键单击(1)
功能结束
//开始按钮_点击操作
功能 开始_点击()
    线程.开启("跳转演示.循环嵌套","")
功能结束

//退出按钮_点击操作
功能 退出_点击()
    辅助.退出()
功能结束

空间结束
//空间结束语句
作者: 379075696    时间: 2013-9-5 23:26
就是这样,要是按键会一直按鼠标左键的,但是TC却不会
作者: 379075696    时间: 2013-9-5 23:27
忘记了,不是子程序,是标记
作者: 379075696    时间: 2013-9-5 23:38
这和按键真不是一类货呀
作者: dongyijun1979    时间: 2013-9-5 23:47
跳转到标记2后,鼠标点击1次,这个函数就执行结束了,怎么了?  
你想叫鼠标一直点击吗?
作者: dongyijun1979    时间: 2013-9-5 23:47
不明白你想达到什么目的?
作者: dongyijun1979    时间: 2013-9-5 23:56
goto可跳出循环和遍历,但不能跳进循环和遍历

要想跳转到 标记2 后还可无限循环,只能将
  1. 标记2://父代码块标记
  2.     鼠标.左键单击(1)
复制代码

放在循环内部

意思就是一旦跳出就进不去了
作者: dongyijun1979    时间: 2013-9-6 00:00
摘抄了一段TC帮助文档的代码,看完后你就明白了
  1. 变量 a = 0  
  2. 循环(真)   
  3.     辅助.等待(10)   
  4.     a++   
  5.     如果(a%10 ==0)    
  6.         goto 标记1 // 这个是错误的语句,运行时报错。   
  7.     如果结束   
  8.     如果(a ==55)   
  9.         goto 标记2//这个是正确的   
  10.     如果结束  
  11.    
  12. 循环结束   
  13. 遍历(j=0;j<100;j++)
  14. 标记1:   
  15.     调试输出(j)   
  16. 遍历结束
  17. 标记2:   
  18. 调试输出("执行完毕")
复制代码

作者: 379075696    时间: 2013-9-6 00:03
我的目的就是想让他一直循环,即使在跳转到标记的时候也一直循环
作者: dongyijun1979    时间: 2013-9-6 00:06
前提是标记所在的地方必须是循环体内,否则进不来。不是你想咋就能咋?
作者: dongyijun1979    时间: 2013-9-6 00:08
累死我了
作者: 379075696    时间: 2013-9-6 00:13
这和按键还真是区别大呀,
作者: dongyijun1979    时间: 2013-9-6 00:18
这样就可以了
  1. 空间 跳转演示
  2. //默认空间
  3. 功能 循环嵌套()
  4.     循环(真)
  5.         变量 计次
  6.         遍历(第一层=0;第一层<5;第一层++)
  7.             遍历(第二层=0;第二层<5;第二层++)
  8. 标记1://父代码块标记
  9.                 辅助.消息框("我是标记1")
  10.                 遍历(第三层=0;第三层<50;第三层++)
  11.                     计次++
  12.                     列表框.增加文本("列表框0",计次)//做自加 并把信息输出到列表框里面
  13.                     如果(计次==40)
  14.                         辅助.消息框("开始跳往标记1")
  15.                         跳转 标记1//跳转去父代码块
  16.                     如果结束
  17.                     如果(计次==60)
  18.                         辅助.消息框("开始跳往标记2")
  19.                         跳转 标记2//跳转去父代码块
  20.                     如果结束
  21.                 遍历结束
  22.             遍历结束
  23. 标记2://父代码块标记**********************************************
  24.             鼠标.左键单击(1) //**********************************           
  25.         遍历结束
  26.         返回 真//在这里大家一定要注意了,//如果没有执行goto的话,又没有返回值,函数将会执行行完下面的所有代码
  27.     循环结束
  28.     辅助.消息框("我是一个错误信息,我不会出现")
  29.     //////////////////////////标记2://父代码块标记
  30.     ///////////////////////////鼠标.左键单击(1)
  31.    
  32. 功能结束
  33. //开始按钮_点击操作
  34. 功能 开始_点击()
  35.     线程.开启("跳转演示.循环嵌套","")
  36. 功能结束

  37. //退出按钮_点击操作
  38. 功能 退出_点击()
  39.     辅助.退出()
  40. 功能结束
  41. 空间结束





复制代码

作者: ok963963ok    时间: 2013-9-6 00:33
2者级别不同步要比较
作者: 379075696    时间: 2013-9-6 00:34
明白了,已经解决了,其实在你没改代码以前就解决了
作者: cylhb    时间: 2013-9-6 01:33

思路有问题。
跳转到标记和调用子函数是不同的概念。
跳转到标记后就直接往标记下面的代码执行,不会返回到跳转语句的下一条代码。
而调用子函数运行结束后,程序会返回到调用子函数的下一条代码执行。
作者: a8461959    时间: 2013-9-6 08:51
哦,解决了?,不过偶还是习惯循环




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