TC官方合作论坛
标题: 循环语句的运用 [打印本页]
作者: 章昊 时间: 2011-7-11 15:23
标题: 循环语句的运用
循环语句的使用
循环语句:所谓的循环语句就是在初始条件成立的情况,不断的重复执行循环体的代码,直到循环条件不满足或者执行某一动作跳出循环体。另外,在TC中使用到循环的时候我们需要开启线程,开启线程的作用就是防止界面卡死(界面一片白),所以在涉及循环的地方我们都需要线程开启,这里我指的是循环只要在线程中执行就不会卡死,而不是出现一个循环就开启一个线程,希望大家能很好的理解清楚。
下面我们根据示例学习循环的使用:
循环示例1:
- 空间 循环语句
- 整型 线程句柄 //定义一个全局的整型线程句柄变量,用于获得线程句柄的值
- 功能 逻辑型 计数器()
- 整型 累加,次数 //分别定义累加、次数两个变量,累加用于计算,次数作为循环条件
- 次数=10 //将10赋值给次数
- 循环(次数>0) //次数为10所以次数大于0,满足条件,进入循环体
- 累加 = 累加 + 1 //在TC2.0中在定义的整型变量初始值为0,所以累加初始值为:0,这个语句为:将右边累加加上1然后赋值给左边累加
- 次数 = 次数 - 1 //用于将次数的值依次减少来控制循环不会无限下去,表示每循环一次次数的值减1直到次数小于等于0结束循环
- 循环结束 //循环体的结束标志和循环开始是成对出现的
- 辅助.消息框(转换.整型转字符型(累加)) //将循环得到的结果用消息框弹出
- 返回 真
- 功能结束
- 功能 逻辑型 开始_点击() //开始事件
- 线程句柄 = 线程.开启("循环语句.计数器","") //开启一个线程执行计数器这个函数,注意线程开启和关闭的格式不要搞混了
- 返回 真
- 功能结束
- 功能 逻辑型 退出_点击()
- 线程.关闭(线程句柄) //开启了线程就要关闭线程,这个也是成对出现的,并在辅助退出命令之前
- 辅助.退出()
- 返回 真
- 功能结束
- 空间结束
复制代码 程序运行结果:10
循环语句示例2:(实现键盘等待按键a,当a按下时,a将连续按下10次)
- 空间 循环语句
- 整型 线程句柄 //定义一个全局的整型线程句柄变量,用于获得线程句柄的值
- 功能 逻辑型 模拟按键()
- 整型 累加,次数 //分别定义累加、次数两个变量,累加用于计算,次数作为循环条件
- 次数=10 //将10赋值给次数
- 整型 键值=键盘.等待按键() //等待一个按键
- 如果(键值==65) //如果这个按键的ASCII值为65则执行下面循环语句,实现键盘a按下10次
- 循环(次数>0) //次数为10所以次数大于0,满足条件,进入循环体
- 键盘.按键(65,1) //键盘a键按下一次
- 辅助.等待(50) //等待50毫秒用于延时,过快会看不到按键的效果
- 次数 = 次数 - 1 //用于将次数的值依次减少来控制循环不会无限下去,表示每循环一次次数的值减1直到次数小于等于0结束循环
- 循环结束 //循环体的结束标志和循环开始是成对出现的
- 如果结束
- 返回 真
- 功能结束
- 功能 逻辑型 开始_点击() //开始事件
- 线程句柄 = 线程.开启("循环语句.模拟按键","") //开启一个线程执行计数器这个函数,注意线程开启和关闭的格式不要搞混了
- 返回 真
- 功能结束
- 功能 逻辑型 退出_点击()
- 线程.关闭(线程句柄) //开启了线程就要关闭线程,这个也是成对出现的,并在辅助退出命令之前
- 辅助.退出()
- 返回 真
- 功能结束
- 空间结束
复制代码 运行结果:aaaaaaaaaaa,可以在记事本做试验。
循环示例3:
注意点:
(1)在多重循环中,应当将最长的循环放在最内层,最短的循环放在最外层,以减少CPU跨循环层执行的次数;
- 空间 循环语句
- 整型 线程句柄 //定义一个全局的整型线程句柄变量,用于获得线程句柄的值
- 功能 逻辑型 嵌套使用()
- 整型 整型[][] 数值=整型[50][50] //分别定义次数、二维数组整型变量,二维数组设为50*50=2500的容量
- 整型 a=1
- 整型 b=1
- 循环(a<5) //次数为5所以次数大于0,满足条件,进入循环体
- 循环(b<10) //次数为10所以次数大于0,满足条件,进入循环体
- 数值[a][b] = b //存入数据
- 辅助.消息框(转换.整型转字符型(数值[a][b])) //依次弹出存入的数据
- b = b + 1 //用于将次数的值依次减少来控制循环不会无限下去,表示每循环一次次数的值加1直到次数大于10结束循环
- 循环结束 //循环体的结束标志和循环开始是成对出现的
- b = 1 //赋值为1,使得b再次进入内循环中
- a = a + 1 //用于将次数的值依次减少来控制循环不会无限下去,表示每循环一次次数的值加1直到次数大于5结束循环
- 循环结束
- 返回 真
- 功能结束
- 功能 逻辑型 开始_点击() //开始事件
- 线程句柄 = 线程.开启("循环语句.嵌套使用","") //开启一个线程执行计数器这个函数,注意线程开启和关闭的格式不要搞混了
- 返回 真
- 功能结束
- 功能 逻辑型 退出_点击()
- 线程.关闭(线程句柄)//开启了线程就要关闭线程,这个也是成对出现的,并在辅助退出命令之前
- 辅助.退出()
- 返回 真
- 功能结束
- 空间结束
复制代码 运行结果:1、2、3、4、5、6、7、8、9循环4次
(2)如果在循环体内,存在逻辑判断,并且循环次数很大,应将逻辑判断移到循环体的外面;
- 空间 循环语句
- 整型 线程句柄 //定义一个全局的整型线程句柄变量,用于获得线程句柄的值
- 功能 逻辑型 嵌套使用()
- 逻辑型 判断 //定义一个逻辑型判断变量,在TC中该变量默认为假(false)
- 整型 a,x,y
- 如果(判断)
- 循环(a<20) //次数为20所以次数大于0,满足条件,进入循环体
- 鼠标.移动(x,y)
- 辅助.等待(100)
- x=x+30
- y=y+30
- a = a + 1 //用于将次数的值依次减少来控制循环不会无限下去,表示每循环一次次数的值加1直到次数大于20结束循环
- 循环结束
- 否则
- 循环(a<20) //次数为20所以次数大于0,满足条件,进入循环体
- 鼠标.移动(x,y)
- 辅助.等待(100)
- x=x+10
- y=y+10
- a = a + 1 //用于将次数的值依次减少来控制循环不会无限下去,表示每循环一次次数的值加1直到次数大于20结束循环
- 循环结束
- 如果结束
- 返回 真
- 功能结束
- 功能 逻辑型 开始_点击() //开始事件
- 线程句柄 = 线程.开启("循环语句.嵌套使用","") //开启一个线程执行计数器这个函数,注意线程开启和关闭的格式不要搞混了
- 返回 真
- 功能结束
- 功能 逻辑型 退出_点击()
- 线程.关闭(线程句柄)//开启了线程就要关闭线程,这个也是成对出现的,并在辅助退出命令之前
- 辅助.退出()
- 返回 真
- 功能结束
- 空间结束
复制代码 (3)如何中断循环。(这里只说逻辑型的中断,在使用大漠的时候这个是一个很方便的处理,避免程序崩溃)
- 空间 循环语句
- 整型 线程句柄 //定义一个全局的整型线程句柄变量,用于获得线程句柄的值
- 功能 逻辑型 嵌套使用()
- 逻辑型 判断 //定义一个逻辑型判断变量,在TC中该变量默认为假(false)
- 整型 a,x,y
- 循环(a<20&&!判断) //次数为5所以次数大于0,满足条件,进入循环体
- 鼠标.移动(x,y) //鼠标移动
- 辅助.等待(100) //延时
- x=x+30 //鼠标每移动一次的x增量
- y=y+30 //鼠标每移动一次的y增量
- 如果(a==10) //当a等于10的时候执行下面语句
- 判断=真 //此处,大家可以通过注释掉看看有和没有这段代码的效果
- 如果结束
- a = a + 1 //用于将次数的值依次减少来控制循环不会无限下去,表示每循环一次次数的值加1直到次数大于5结束循环
- 循环结束
- 返回 真
- 功能结束
- 功能 逻辑型 开始_点击() //开始事件
- 线程句柄 = 线程.开启("循环语句.嵌套使用","") //开启一个线程执行计数器这个函数,注意线程开启和关闭的格式不要搞混了
- 返回 真
- 功能结束
- 功能 逻辑型 退出_点击()
- 线程.关闭(线程句柄)//开启了线程就要关闭线程,这个也是成对出现的,并在辅助退出命令之前
- 辅助.退出()
- 返回 真
- 功能结束
- 空间结束
复制代码
作者: 小风子 时间: 2011-7-11 15:54
支持帮助新人
作者: ↘夢想飛舞√ 时间: 2011-7-17 15:13
顶
作者: 596945825 时间: 2011-7-17 18:37
:Q看不懂。。。。
作者: 596945825 时间: 2011-7-17 18:38
:| 钻研下、、、、好模糊
作者: 章昊 时间: 2011-7-18 08:47
回复 5楼596945825的帖子
当遇到循环语句中包含了一个或者多个循环时,先从里面的执行开始然后到外面执行。
作者: TC管理员 时间: 2011-7-18 15:27
很好,不错 给力
作者: ↘夢想飛舞√ 时间: 2011-7-20 09:10
有用 顶
作者: usedel 时间: 2011-7-31 21:33
习惯了英文编程,初用这个东东还真的不习惯
作者: 章昊 时间: 2011-8-1 09:00
回复 9楼usedel的帖子
TC也支持英文编程,只要你在建立项目的时候选择英文就好。
作者: hzlin 时间: 2011-8-3 01:26
新人刚刚来到,感觉代码很像易语言.
作者: cpffyy 时间: 2011-8-3 02:20
虚心学习中
作者: 章昊 时间: 2011-8-3 08:51
回复 12楼cpffyy的帖子
恩 有志者事竟成! 相信会写出强大脚本的。
作者: 章昊 时间: 2011-8-3 08:52
回复 11楼hzlin的帖子
脚本是vc开发的,简单易学,相信你会很快掌握!
作者: 1244334949 时间: 2011-8-3 10:42
:| 不懂:|
作者: maple185 时间: 2011-8-4 17:56
顶顶:#
作者: sangyiyuan 时间: 2011-8-6 09:35
学习,都是高手
作者: liu664183272 时间: 2011-8-12 01:57
还模模糊糊能看懂
作者: `Sea`凯子 时间: 2011-8-15 12:47
感觉像嵌套循环语句
作者: shawj 时间: 2011-8-30 21:28
整型和字符型是什么意思?
作者: 章昊 时间: 2011-8-31 10:57
回复 21楼shawj的帖子
整型 表示的是整数这样的数据
字符型 表示是字符串形式的字符
不懂的参考TC语法
作者: lok5858 时间: 2011-9-2 04:37
你能弄一个你电脑上面编程好的包括坐标 什么的吗 然后自己直接复制一下 然后就知道怎么改了 现在看起来好模糊 新手
作者: 章昊 时间: 2011-9-2 08:35
回复 23楼lok5858的帖子
你需要什么样的代码呢?具体我还没弄懂你的意思?
作者: 5201314xqm 时间: 2011-9-4 21:40
吸取精华!!!!
作者: yinghuaft 时间: 2011-9-9 09:28
顶了。。。。
作者: hlbwdy01 时间: 2011-9-21 16:10
要多看几次才能看懂
作者: 961560902 时间: 2011-10-5 03:34
不是太懂
作者: coolshuaibin 时间: 2011-10-15 21:47
循环 循环 再 循环
作者: 我菜菜 时间: 2011-10-18 16:14
看了之后发现头好晕哦:~
作者: lzl272760015 时间: 2011-10-18 20:30
顶一个啊 求1师傅
作者: xingzhihuo 时间: 2011-10-24 21:33
帮我看一下怎样让这个取色加血循环起来!我这里找到窗口用的是鼠标移动,就自己试了一下取血条颜色值加血,成是成功了,可是血没加满不知道怎样循环,头都晕了!
我什么都不懂,不要笑我!!!!!楼主要帮帮我啊,你们哪里有网络教学的,加下我QQ联系下我,我真心想学!
空间 我的程序
功能 逻辑型 开始_点击()
鼠标.移动(393,882) ----------这是我窗口坐标
辅助.等待(500)
鼠标.左键单击(1)
辅助.等待(500)
整型 x
整型 y
字符型 返回的x坐标
字符型 返回的y坐标
逻辑型 是否找到
是否找到=图像.区域找色(244,126,281,127,#7685F2,0,x,y)----------------这是我血条颜色值跟坐标范围
//获取区域图像的X1,X2,Y1,Y2及颜色值返回X,Y坐标
如果(是否找到)
辅助.等待(500)----------就是这个如果找到了,要让这段命令怎么循环!否则
超级键盘.ps按下(112)--------------这是我的加血键
如果结束
返回 真
功能结束
功能 逻辑型 退出_点击()
辅助.退出()
返回 真
功能结束
空间结束
作者: xingzhihuo 时间: 2011-10-24 23:01
大哥,师傅!!!
这刚刚搞的一个很简单的血炼操作脚本!从自动买自动炼到结束很正常,只是要怎么让它识别是否成神品,如果是神品则停止血炼就行,如果不是神品就继续循环!帮我看一下最后要怎样加命今!!拜托拜托,我也不要很高要求,就是能识别能循环就行,不要自动卖自动换灵煤那么复杂,我一件一件炼就行了!
空间 血炼
//定义默认空间
功能 逻辑型 开始_点击()
鼠标.移动(546,485)
辅助.等待(300)
鼠标.左键双击(1)
辅助.等待(600)
鼠标.移动(287,540)
辅助.等待(400)
鼠标.左键单击(1)
辅助.等待(300)
鼠标.移动(356,343)
辅助.等待(300)
鼠标.右键单击(1)
辅助.等待(350)
鼠标.移动(806,430)
辅助.等待(350)
鼠标.左键单击(1)
辅助.等待(350)
鼠标.移动(569,260)
辅助.等待(100)
鼠标.左键单击(1)
辅助.等待(200)
鼠标.移动(546,485)
辅助.等待(350)
鼠标.左键双击(1)
辅助.等待(500)
鼠标.移动(276,480)
辅助.等待(200)
鼠标.左键单击(1)
辅助.等待(350)
鼠标.移动(896,344)
辅助.等待(350)
鼠标.右键单击(1)
辅助.等待(300)
鼠标.移动(934,342)
辅助.等待(300)
鼠标.右键单击(1)
辅助.等待(350)
鼠标.移动(1079,597)
辅助.等待(350)
鼠标.右键单击(1)
辅助.等待(350)
鼠标.移动(324,778)
辅助.等待(300)
鼠标.左键单击(1)
辅助.等待(4000)
--------------------------到这里就炼完了,要怎样识别啊!鼠标.移动(475,657)
辅助.等待(300)
鼠标.左键单击(1)
返回 真
//函数返回语句
功能结束
功能 逻辑型 退出_点击()
//这里添加你要执行的代码
辅助.退出()
返回 真
//函数返回语句
功能结束
空间结束
//空间结束语句
作者: a87458340 时间: 2011-11-1 16:14
这个源码我看了两个小时 才看懂 难道是我智商太低了0 0好纠结
作者: liangzql 时间: 2011-11-1 19:10
TC也支持英文编程,只要你在建立项目的时候选择英文就好。
作者: 迩比可比克 时间: 2011-11-1 20:59
留迹 非水
作者: 只爱君君 时间: 2011-11-7 10:23
当出现一个循环中还有另一个循环
作者: 章昊 时间: 2011-11-7 16:12
回复 33楼xingzhihuo的帖子
到了那个点之后你鼠标移动到血炼的物品上面大漠找字功能找神品2个字,找到之后就继续执行下一个循环
作者: saemy 时间: 2011-11-11 22:02
:~不知用做那里!还是先学习下!
作者: 55664411 时间: 2011-11-20 18:08
顶不错的 很适合新手
作者: 6263691 时间: 2011-11-21 10:34
gggggggggggggggggg
作者: junjun19860702 时间: 2011-11-21 13:40
这中文看起来更累 看迷糊了都
作者: eragonpan 时间: 2011-11-21 18:22
嗯嗯。我要学做脚本.各位大哥 以后指点指点!
作者: zq4303310 时间: 2011-11-23 14:52
看不懂 只好灌水- -
作者: 523883286 时间: 2011-11-24 03:51
新人登场
作者: zhchfei88 时间: 2011-11-24 12:54
很全很有用
作者: 523883286 时间: 2011-11-24 13:47
哎怎么看都不明白
作者: 迷失 时间: 2011-11-24 21:16
试试再说1
作者: niaofei007 时间: 2011-11-24 22:57
而且要自己学d
作者: 完美风暴 时间: 2011-11-26 13:38
有不少还看不懂,正在学习。谢谢楼主了。
作者: hf8896093 时间: 2011-11-26 16:08
没看懂
作者: s912112 时间: 2011-11-28 10:07
sdasdasdasd
作者: s912112 时间: 2011-11-28 10:08
wwwwwwwwwwwwwwww
作者: s912112 时间: 2011-11-28 10:08
yyyyyyyyyyyyyy
作者: zhenchong3 时间: 2011-11-28 10:09
为了积分~~a ~~
作者: s912112 时间: 2011-11-28 10:11
qqqqqqqqqqqqeewe
作者: s912112 时间: 2011-11-28 10:13
tttttttttttttttttt
作者: s912112 时间: 2011-11-28 10:20
qweqweqeqw
作者: sckkfd 时间: 2011-11-28 18:19
好难哦
作者: 志远 时间: 2011-12-1 15:45
我顶!!!!
作者: 892348339 时间: 2011-12-2 10:46
不是很懂
作者: dzh 时间: 2011-12-2 14:26
有不少还看不懂,正在学习。谢谢楼主了。
作者: 24466588 时间: 2011-12-2 14:42
新人来学习了,还是没看很明白
作者: 15205905830 时间: 2011-12-2 18:45
顶
作者: ysl2018 时间: 2011-12-4 18:02
我是2003的系统,TC2.003的版本,运行出现错误信息:'数值[50][50]'中出现不是命名规范中的字符是怎么回事呢,我是用复制来的源代码
作者: 丿_旧情人〃 时间: 2011-12-5 20:20
支持下
作者: 413494237 时间: 2011-12-5 22:09
顶顶
作者: 吃猫的鱼 时间: 2011-12-9 14:37
不管看的懂看不懂。。先顶下。。。。。
作者: djsh 时间: 2011-12-10 15:46
:D新人再次飘过
作者: djsh 时间: 2011-12-10 15:47
个人觉得把延迟加到1000ms能更清晰的反映给小白看 我就是那样做的 嘿嘿
作者: v11ks 时间: 2011-12-11 17:27
啊哈 我比较喜欢TC的定时器 加血的好家伙
作者: xyyy 时间: 2011-12-12 11:08
第一个原文没动编入tc 运行无效 不知原因 什么反映都没有的
作者: JIANG_123 时间: 2011-12-13 16:51
其实真的有些不懂,这些代码要修改界面才能运行么
作者: wxt19870517 时间: 2011-12-13 17:05
顶一个!!!1
作者: qq272599194 时间: 2011-12-14 20:10
循环结束
作者: qq272599194 时间: 2011-12-14 20:15
开始_点击() //开始事件
作者: shizhengnnam 时间: 2011-12-16 14:36
看了半天还是看不懂
作者: ruihaimu 时间: 2011-12-19 20:53
回复 1楼章昊的帖子
我是纯新手 真看不动 有更白菜一点的吗
作者: ①笑②过 时间: 2011-12-21 20:30
小白来学习下 虽然看的很迷糊 顶下
作者: 韩文 时间: 2011-12-26 18:18
看不懂
作者: zhangopg 时间: 2011-12-27 05:50
支持
作者: 新手小白白 时间: 2011-12-27 08:29
我觉得很有用!!!!
作者: yl309 时间: 2011-12-27 11:23
支持。
作者: yl309 时间: 2011-12-27 23:38
支持!
作者: ttian2011 时间: 2011-12-30 10:33
很好很强大,不过我是初学者,看不明白,还望老大们多多指教
作者: 取消了520 时间: 2011-12-31 22:56
新人顶。
作者: z7544 时间: 2011-12-31 23:46
您所在的用户组无法下载或查看附件
作者: yudavid1009 时间: 2012-1-2 19:31
回复 1楼章昊的帖子
谢谢
作者: egmsky 时间: 2012-1-3 00:21
学习
作者: victor8733 时间: 2012-1-3 23:54
新人来学习
作者: 随风大侠111 时间: 2012-1-9 00:12
顶顶顶
作者: 1083165690 时间: 2012-1-9 10:26
看不懂啊:Q谁能教教我 QQ1083165690
作者: piaoliloveling 时间: 2012-1-12 11:47
我不打酱油 我要天天学习 好好向上
作者: zwsq983044164 时间: 2012-1-15 23:23
看帖必回,回帖是美德.
作者: cr995cr 时间: 2012-1-18 11:21
这个帖子很好。
作者: li470572465 时间: 2012-1-18 16:16
新手路过
作者: 爱倩柔 时间: 2012-1-22 16:39
顶!!!!!!
作者: jk155611 时间: 2012-1-27 12:59
我来看过了学了好多
作者: 7761111 时间: 2012-1-27 13:58
学习了~~~~
作者: xyerui 时间: 2012-1-29 13:20
这样子用线程 如果循环里卡死了 整个脚本 就不会卡死吗?
作者: zure 时间: 2012-1-31 03:36
看来只能看看这个了
| 欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) |
Powered by Discuz! X3.1 |