1、程序结构介绍 此文为小妖首发于按键精灵论坛。借百度平台转发,希望能够帮到学按键的朋友。 当然,我自己也是一个新手,只不过,我能看一点代码,做点帮助自己的减少工作量的脚本。也达不到那些大神们,对API、dos(貌似有更多东西,可惜我只知道这些)等等理解深刻理解的大神那样,做到自己写代码优化脚本。我只能站在这些大神们做好的东西上,去做一些自己喜欢做的事。 估计很多人和我当初一样迷茫。看着按键的教程,学按键教程里面录制、跳转标记、找色、找图、找字。然后弄出个满是goto。。。的脚本。最后自己都不知道脚本写的是什么。 一开始就学补血、补篮、找图打怪。不仅弄出来的脚本,自己糊涂,
2、给别人看,别人都糊涂。 那怎么徐徐渐进呢? 个人理解来说,我们应该从小到大。 实际上,按键是基于VBS开发出来的(不知道这句话对不对,反正就是类似VB。。。)。 一个脚本,基本上都遵循着程序结构来写的。 这儿介绍3种基本的程序结构: 1. 顺序结构。 顺序结构就是按照运行顺序决定。 比如: 1. TracePrint "第一次" //调试显示 “第一次” 2. TracePrint "第二次" //调试显示 “第二次” 3. TracePrint "第三次" //调试显示 “第三次” 这段代码,就是依次
3、显示 第一次 第二次 第三次。 一条一条的运行,一条一条的显示。当然,这儿你完全可以单步调试来查看运行顺序。 2.选择结构。 选择结构是判断一个值,是否为真,为真的话怎么样,为假的话怎么样。 比如: 1. If 1 = 1 Then //判断 1=1 是否成立 2. TracePrint "真的相等" //成立则调试显示 真的相等 3. Else //如果不成立 4. TracePrint "不相等" //不成立则显示 不相等 5. End if
4、 //判断语句结束 这段代码,第一句的时候,就在做判断,是否相等,相等就执行紧接着的那条,不相等的话,就执行Else 后面的那条。 双斜杠 // 后面的字是注释,不会直接运行。这儿是用来给大家解释语句的。可以删除,不影响脚本运行。 3.循环结构。 循环结构有很多。比如,do … loop 循环 While … wend 循环 for … Next循环等等。我这儿不是教程,也就不一一介绍,大家可以去找相关教程。 比如: 1. For i = 0 to 3
5、//循环3次,循环变量为 i 每次自加1(默认) 2. TracePrint"循环" //调试输出 3. Next // 循环结束 这段代码,我用了一个变量i ,变量通俗点就是我们用于存放一些可变动的数值、字符串等等的名称。这儿的i 相当于一个盒子,可以装我们想装的东西,比如值 1。变量可以用来相加运算等等等。具体的需要学习变量相关教程。需要学习的包括变量命名规则、变量定义、变量作用域、变量使用等等。当然,变量中还有数组变量、环境变量等等。 把以上的学习,那么我们就
6、可以开始做一些小脚本了。 比如,做一个计算 1加到 100 显示结果的脚本。 先要分析,1加到100,就是累加。我们需要一个变量来装这个累加的结果。 比如,定义一个sum来装结果。 1. Dim sum 这样,我们就有了一个变量,用来装累加得到的值。 比如,1+2的值装在sum里面。那就是: sum=1+2 这儿,我们称为赋值。就是把 1+2 这个值赋值到 sum 里面。 所以,想得到1加到10可以这么写: 1. Dim sum //定义 sum
7、 2. Sum=1+2+3+4+5+6+7+8+9+10 // 给sum 赋值,值是1加到10 3. TracePrint sum // 调试输出 sum 的值 比较偷懒,因为写到100 你看着也累,我写着也累。估计很多懂点的人都知道,这方法太笨了。对,要是每个代码都这么写,那么我们加到一万、十万、百万怎么办。光写这个都累死人了。 如果学过数学,那么,你就知道,这个是个等差数列。 也就是说,1到2相差1,2到3呢,也是相差1。 如果我们用一个变量来装1,那么只要他本身再加1,就会变成2,再加1就会
8、变成3。 啊,不懂啊?我们定义这个变量i 那么就有如下: 1. Dim i //定义 2. i = 1 //给i一个初始值 3. TracePrint i //调试下,这儿的i结果是什么 4. i=i+1 // i在自己的值的基础上加1 5. TracePrint i //再次显示i的值 这样的话, i 就会在自己的基础上增加 1。
9、 如果我们用for 来让 i 一直从1变成100,那就是: 1. Dim i // 不要忘记了定义,大家最好去看看定义相关的。比如全局变量与局部变量的作用域 2. i = 1 // 给i一个初始值 3. TracePrint i //显示i的值 4. For 99 //循环99次 5. i = i + 1 //i 等于它自己加1 6. TracePrint i
10、 //显示i的每运行一次之后的值 7. Next //循环结束 是不是i从1变成100了? 然后呢?Sum 是不是应该每一次i变动之后,都要加到sum里面就行了呢? 也就是: 1. Dim i , sum // 多定义了一个sum,因为要用到它。 2. i = 1 // 给i一个初始值 3. sum = 0 //同样的,要给sum一个初始值。Sum刚开始的时候应该是0,因为还没开始加。 4.
11、 For 100 //循环100次 5. Sum = sum + i //每循环一次,sum值就等于上一次的sum值加上i。 6. i = i + 1 //i 等于它自己加1 7. Next //循环结束 8. TracePrint sum //显示sum最后的结果 估计有人会问,为什么是循环100次呢?不是循环99次,i的值就是100了吗? 我得告诉你,因为这儿有两个结构,一个是顺序结构,一个呢?是循环结构。
12、 程序是这样运行的, 第一、定义 第二、给i赋值1,给sum赋值0。 第三、进入循环体for 100里面。先执行sum=sum+i 这句,也就是说,先把1累加到sum里面。 第四、i 在自己的基础上加1,变成2。 最后循环下一次。下一次照样是sum=sum+i,也就是sum=1+2。 这样,一直到最后一次,这时候,循环体(循环体就是循环结构里面的那些个语句,这儿有sum=sum+i,i=i+1)循环执行了99次,i的值为100(前面我们调试 for99次的时候,我已
13、经调试输出了i的值给大家看了)。但是这时候,因为i=i+1在sum=sum+i的下面。安装顺序结构来说,i=100的时候,并没有加到sum里面。如果这个时候结束了,那么,sum里面只加到了99。所以,我们要再加一次,把100加进去。 这就是顺序结构与循环结构结合,实现了1加到100的值。 其实,如果你进一步了解 for,那么你会知道,可以这么写。 1. Dim i, sum 2. For i = 1 to 100 //重点在这儿,i这儿作为一个变量,默认的情况下,这样写会初始值为1每次循环的时候,自己加1,一直循环到i变成100(到100的时候还会执行一次循环体,与上面的有点差异)。 3. Sum = sum + i 4. Next 5. TracePrint sum 本章结束。






