零基础学按键精灵(第一章)
按键精灵教程按键精灵的教程,帮助您学习如何使用该工具1.下载安装首先

按键精灵教程按键精灵的教程,帮助您学习如何使用该工具1.
下载安装首先
以下是按键精灵的教程,帮助您学习如何使用该工具:
1. 下载安装:首先需要从官方网站或其他可靠的网站下载按键精灵软件,然后按照提示和安装向导安装到电脑上。
2. 基本界面和功能:学习按键精灵的基本界面和功能,从而快速了解该工具的操作和使用方式。
3. 录制宏:按键精灵最大的特点就是宏录制功能,可以将一系列的命令和操作录制下来,然后再次使用时,只需补充输入需要更改的变量即可。
学习如何录制一个宏后,让其在某些条件下自动触发。
4. 宏脚本编辑:对于一些复杂的宏脚本,我们可以通过编辑器对其进行编辑,让其更加智能。
5. 学习按键精灵脚本语言:按键精灵脚本语言也是一个重要的学习点,在掌握其基本语法规则和常用命令的基础上,能够让使用更加精准。
6. 常用功能:按键精灵还有很多其他的功能,如窗口控制、文件操作、日期时间等。
学习这些功能,能够使按键精灵更加多样化和可玩性。
7. 练习和应用:通过对按键精灵的学习和练习,掌握并运用其各种功能和技巧,能够提升工作效率和质量,让整个工作流程变得更加智能和便捷。
通过按键精灵的学习和应用,能够大大提高工作效率和质量,以及简化工作流程,达到省时、省力的效果。
零基础学按键精灵(第一章)

程序结构介绍此文为小妖首发于按键精灵论坛。
借百度平台转发,希望能够帮到学按键的朋友。
当然,我自己也是一个新手,只不过,我能看一点代码,做点帮助自己的减少工作量的脚本。
也达不到那些大神们,对API、dos(貌似有更多东西,可惜我只知道这些)等等理解深刻理解的大神那样,做到自己写代码优化脚本。
我只能站在这些大神们做好的东西上,去做一些自己喜欢做的事。
估计很多人和我当初一样迷茫。
看着按键的教程,学按键教程里面录制、跳转标记、找色、找图、找字。
然后弄出个满是goto。
的脚本。
最后自己都不知道脚本写的是什么。
一开始就学补血、补篮、找图打怪。
不仅弄出来的脚本,自己糊涂,给别人看,别人都糊涂。
那怎么徐徐渐进呢?个人理解来说,我们应该从小到大。
实际上,按键是基于VBS开发出来的(不知道这句话对不对,反正就是类似VB。
)。
一个脚本,基本上都遵循着程序结构来写的。
这儿介绍3种基本的程序结构:1. 顺序结构。
顺序结构就是按照运行顺序决定。
比如:1.TracePrint "第一次" //调试显示“第一次”2.TracePrint "第二次" //调试显示“第二次”3.TracePrint "第三次" //调试显示“第三次”这段代码,就是依次显示第一次第二次第三次。
一条一条的运行,一条一条的显示。
当然,这儿你完全可以单步调试来查看运行顺序。
2.选择结构。
选择结构是判断一个值,是否为真,为真的话怎么样,为假的话怎么样。
比如:1.If 1 = 1 Then //判断 1=1 是否成立2. TracePrint "真的相等" //成立则调试显示真的相等3. Else //如果不成立4. TracePrint "不相等" //不成立则显示不相等5.End if //判断语句结束这段代码,第一句的时候,就在做判断,是否相等,相等就执行紧接着的那条,不相等的话,就执行Else 后面的那条。
按键精灵图文教程

手把手教你用“按键精灵”图文教程类型:转载按键精灵是一个可以模拟电脑操作的软件,您在电脑上的一切动作都可以让按键精灵模拟执行,完全解放您的双手。
按键精灵可以帮你操作电脑,不需要任何编程知识就可以作出功能强大的脚本。
如果你还为一些枯燥、繁琐的电脑操作而烦恼,按键精灵绝对会是你最好的帮手。
那么,按键精灵具体能帮我们干什么呢?我们来列举几个例子来说明下。
* 网络游戏中可作脚本实现自动打怪,自动补血,自动说话等;* 办公族可用它自动处理表格、文档,自动收发邮件等;* 任何你觉得“有点烦”的电脑操作都可以替你完成。
按键精灵第一个实现了“动动鼠标就可以制作出脚本”的功能。
我们不希望为了使用一个小软件而去学习编程知识,考虑到这些,所以按键精灵完全界面操作就可以制作脚本。
按键精灵的脚本是纯粹的TXT文件,即使是目前新增了插件功能,也引入了数字签名的机制。
因此我们可以放心的使用网站上的脚本而不用担心会有病毒。
脚本就是一系列可以反复执行的命令.通过一些判断条件,可以让这些命令具有一定的智能效果.我们可以通过”录制”功能制作简单的脚本,还可通过”脚本编辑器”制作更加智能的脚本.今天我们就通过录制一个最简单的脚本,来手把手的教大家使用按键精灵。
上网一族一般开机后会先看看自己邮箱,或者看看自己博客;每天如此,可能都有些烦了。
现在好了,把这些繁杂的事情交给按键精灵吧。
今天我们就来录制一个自动登录博客,并对整个页面进行浏览的脚本。
首先,我们打开“按键精灵”。
其运行界面如下(图1):图1 运行界面打开软件后点击工具栏上“新建”项(如图2);之后进入“脚本编译器”界面(如图3)。
现在就可以正式开始编译脚本了。
图2 新建图3 脚本编译器界面在脚本编译器界面上,左键点击工具栏上“录制”项,会出现这样的情况:进入桌面,并出现一个小的对话框(如图4)。
图4 录制在这个小的对话框中,左侧红色圆按钮是录制的开始,第二个蓝色方按钮是录制结束,第三个是存储录制内容。
按键精灵使用教程

[KeyPress]格式: KeyPress {键盘虚拟码} {次数}解释:先“按下”再“弹起”键,模拟我们平时的“按键”操作.我们在使用键盘的时候有两种操作,一种是”按下”键,一种是”弹起”键.将这两个动作连续进行,就是一个完整的”按键”动作.按键精灵可以模拟所有的键盘动作.[KeyDown]格式: KeyDown {键盘虚拟码} {次数}解释: “按下”键,模拟我们平时的“按下”操作注意:有些键在按下之后,会和其他键产生组合效果,比如“Alt/Ctrl/Shift”,如果使用“按下Alt”命令,那么之后的“按键”动作将变成“Alt+A”等组合动作,因此记得在必要时使用“弹起”命令将组合键释放,避免影响键盘的正常使用.[KeyUp]格式: KeyUp {键盘虚拟码} {次数}解释:“弹起”键,模拟我们平时的“弹起”操作[KeyPressH]格式: KeyPressH {键盘虚拟码} {次数}解释: 硬件模拟按键,与KeyPress功能类似,先“按下”再“弹起”键,但采取了硬件模拟的方式在某些情况下普通模拟按键命令会失效,不妨试试硬件模拟命令[KeyDownH]格式: KeyDownH {键盘虚拟码} {次数}解释: 硬件模拟按下,与KeyDown功能类似,“按下”键,但采取了硬件模拟的方式在某些情况下普通模拟按键命令会失效,不妨试试硬件模拟命令[KeyUpH]格式: KeyUpH {键盘虚拟码} {次数}解释: 硬件模拟弹起,与KeyUp功能类似,“弹起”键,但采取了硬件模拟的方式在某些情况下普通模拟按键命令会失效,不妨试试硬件模拟命令[LeftClick]格式:LeftClick {次数}解释:在鼠标当前位置模拟点击鼠标左键.{次数}可以控制点击的次数[RightClick]格式:RightClick {次数}解释:在鼠标当前位置模拟点击鼠标右键.[MiddleClick]格式:MiddleClick {次数}解释:在鼠标当前位置模拟点击鼠标中键.[LeftDoubleClick]格式:LeftDoubleClick {次数}解释:在鼠标当前位置模拟双击鼠标左键.[LeftDown]格式:LeftDown {次数}解释:在鼠标当前位置模拟按下鼠标左键,{次数}在这个语句中虽然有效,但没有实际意义.[LeftUp]格式:LeftUp {次数}解释:在鼠标当前位置模拟松开鼠标左键,{次数}在这个语句中虽然有效,但没有实际意义.[RightDown]格式:RightDown {次数}解释:在鼠标当前位置模拟按下鼠标右键,{次数}在这个语句中虽然有效,但没有实际意义.[RightUp]格式:RightUp {次数}解释:在鼠标当前位置模拟松开鼠标右键,{次数}在这个语句中虽然有效,但没有实际意义[LeftClickH]格式:LeftClickH {次数}解释:使用硬件模拟方式,在鼠标当前位置模拟点击鼠标左键.{次数}可以控制点击的次数在某些情况下普通模拟鼠标命令会失效,不妨试试硬件模拟命令[RightClickH]格式:RightClickH {次数}解释:使用硬件模拟方式,在鼠标当前位置模拟点击鼠标右键.在某些情况下普通模拟鼠标命令会失效,不妨试试硬件模拟命令[MiddleClickH]格式:MiddleClickH {次数}解释:使用硬件模拟方式,在鼠标当前位置模拟点击鼠标中键.在某些情况下普通模拟鼠标命令会失效,不妨试试硬件模拟命令[LeftDoubleClickH]格式:LeftDoubleClickH {次数}解释:使用硬件模拟方式,在鼠标当前位置模拟双击鼠标左键.在某些情况下普通模拟鼠标命令会失效,不妨试试硬件模拟命令[LeftDownH]格式:LeftDownH {次数}解释:使用硬件模拟方式,在鼠标当前位置模拟按下鼠标左键,{次数}在这个语句中虽然有效,但没有实际意义.在某些情况下普通模拟鼠标命令会失效,不妨试试硬件模拟命令[LeftUpH]格式:LeftUpH {次数}解释:使用硬件模拟方式,在鼠标当前位置模拟松开鼠标左键,{次数}在这个语句中虽然有效,但没有实际意义.在某些情况下普通模拟鼠标命令会失效,不妨试试硬件模拟命令[RightDownH]格式:RightDownH {次数}解释:使用硬件模拟方式,在鼠标当前位置模拟按下鼠标右键,{次数}在这个语句中虽然有效,但没有实际意义.在某些情况下普通模拟鼠标命令会失效,不妨试试硬件模拟命令[RightUpH]格式:RightUpH {次数}解释:使用硬件模拟方式,在鼠标当前位置模拟松开鼠标右键,{次数}在这个语句中虽然有效,但没有实际意义在某些情况下普通模拟鼠标命令会失效,不妨试试硬件模拟命令[MoveTo]格式:MoveTo {X坐标} {Y坐标}解释:移动鼠标到(X坐标,Y坐标)处举例:MoveTo 100 200把鼠标移动到(100,200)这个点上MoveTo intX intY把鼠标移动到(intX,intY)这个点上,需要5.50以上版本支持.[MoveR]格式:MoveR {X距离} {Y距离}解释:把鼠标相对移动(X距离,Y距离)举例:当前鼠标在(100,100)点,使用下面语句MoveR 200 300之后,鼠标就被移到了(100+200,100+300)处,也就是坐标(300,400)处[MoveRH]格式:MoveR {X距离} {Y距离}解释:相对移动鼠标的硬件模拟指令把鼠标相对移动,(X距离,Y距离)[SaveMousePos]格式:SaveMousePos解释:保存当前鼠标位置[RestoreMousePos]格式: RestoreMousePos解释: 将鼠标移动到上一次保存的鼠标位置举例:保存/恢复鼠标位置常用于制作网络游戏练功脚本,脚本开始时保存鼠标位置,脚本结束时恢复鼠标位置,这样脚本执行后鼠标的位置就不会变化[LockMouse]格式: LockMouse解释: 锁定鼠标位置,用户将不能通过移动鼠标而改变鼠标位置,而脚本仍可以改变鼠标位置举例: 在脚本开始的时候使用这个命令,可以有效防止用户误触鼠标引起脚本执行出错[UnlockMouse]格式: UnlockMouse解释: 解除LockMouse命令对鼠标位置的锁定。
按键精灵教程

TiShiXinXI = "当您按下脚本的启动热键 F10 "&vbCrLf&"脚本即可帮你模拟按键输入 A "
Gosub 提示
TiShiXinXI = "本教程演示完毕!"&vbCrLf&"快点试试您的第一个脚本吧!"
Gosub 提示
Gosub GetABPoint
Gosub 慢慢移动
LeftClick 1
Delay 3000
LeftClick 1
Return 介绍1
//功能模块3:脚本编辑器界面,介绍鼠标命令的使用
Sub 介绍2
TiShiXinXI = "请看鼠标命令面板"&vbCrLf&"可以模拟鼠标的操作"
Return 提示
//常用:获取A点和B点的坐标,A点是当前坐标点,B点是目的坐标点
Sub GetABPoint
//获取A点坐标信息
VBSCall GetCursorPos(ax,ay)
//获取B点坐标信息,B点坐标 = 窗口坐标 + 相对坐标
Plugin hWnd=Window.Foreground()
Gosub 慢慢移动
Delay 2000
LeftClick 1
// Delay 1000
//打开了脚本编辑器,介绍脚本编辑器的功能
TiShiXinXI = "现在您看到的是脚本编辑界面"&vbCrLf&"这里是创造脚本的舞台"
Gosub 提示
Gosub 提示
按键精灵学习教程

按键精灵学习教程按键精灵学习教程一、1、子程序和函数调用演示//<>---------------------------------------------子程序调用Call 普通子程序()Call 代入参数的子程序(100,50)//<>---------------------------------------------函数调用Msgbox 代入参数的函数(100,50)Sub 普通子程序()Msgbox "我是普通子程序,被调用了"End SubSub 代入参数的子程序(a,b)c=a+bMsgbox "我是代入参数的子程序,被调用了。
结果值为:" & c End SubFunction 代入参数的函数(a,b)c=a*b代入参数的函数= "我是代入参数的函数,被调用了。
结果值为:" & c End Function2、重启脚本运行演示For i=0 to 2Delay 1000Call Plugin.Msg.ShowScrTXT(0, 0, 1024, 768, "屏幕内容填写" & i, "0000FF") NextRestartScript //重新启动脚本运行3、中文名变量演示//<>---------------------------------------------用户自定义变量支持中文名为变量名UserVar 启动=DropList{"打开":1|"关闭":0}=0 "补血启动开关"UserVar 补血=0 "补血百分比%"//<>---------------------------------------------定义变量支持中文名为变量名Dim 提示提示="补血启动开关未设置打开!"If 启动=1 ThenMsgbox "补血百分比为:"& 补血& "%"ElseMsgbox 提示End If4、选择条件结构演示UserVar 变量=0 "输入(0~9)数字"//<>---------------------------------------------以下是选择条件结结构判断Select Case 变量Case 0Msgbox "你输入的数字为:0"Case 1Msgbox "你输入的数字为:1"Case 2Msgbox "你输入的数字为:2"Case 3Msgbox "你输入的数字为:3"Case ElseMsgbox "你输入的数字不正确,请输入(0~3)数字!"End Select5、下拉型用户自定义//说明:{}当中是下拉的选项=0是指的默认显示哪个选项(从0开始)UserVar Var1=DropList{"低于10%时补血":"0.1"|"低于20%时补血":"0.2"|"低于30%时补血":"0.3"}=2 "自动补血设置"UserVar Var2=0 "普通自定义变量"MessageBox(Var1)MessageBox(Var2)6、退出脚本运行演示7、Shape1 = 1593350287//下面是我们访问网页超链接时候的手型鼠标形状Shape2 = 1055991329Shape=GetCursorShape(0)If shape = shape1 thenMessageBox "当前鼠标形状是普通的WINDOWS鼠标" ElseIf shape = shape2 thenMessageBox "当前鼠标形状是手型鼠标"ElseMessageBox "不认识当前鼠标形状!"End If8、日志信息记录演示//<>---------------------------------开始记录日志LogStart "C:\a.log"For i = 0 To 3//<>---------------------------------以下“TracePrint”输出信息内容将被记录为日志TracePrint "屏幕内容填写" & iCall Plugin.Msg.ShowScrTXT(0, 0, 600, 300, "屏幕内容填写" & i, "0000FF") Next//<>---------------------------------记录日志停止LogStop//<>---------------------------------日志停止了,下一句“TracePrint”输出信息不会被记录TracePrint "这句不会输出!"If MsgBox("日志记录完成!是否打开查看内容?",4,"提示:") = 6 Then //存放在C盘,下面会帮你打开查看RunApp "notepad.exe C:\a.log"End If。
按键精灵-冷血课堂

[教程]冷血课堂1--如何通过读取颜色来“认识”数字?记得很久以前曾经跟兄弟论坛上的一个朋友说过,猎手确实就是一个读颜色的脚本,根本没有涉及读取内存。
不是按键精灵不支持读取内存地址(按键精灵从内存地址中读取一个数字,还是很简单的,一条命令就可以实现),也不是说游戏中的数值多么难以得到,以热血江湖为例,那些常用数值的地址,全是固定地址,要找到那些地址,实在是太简单了,相对于那些采取“动态地址”的网络游戏,寻找热血江湖的地址就是小儿科了。
当然,这不是本文的重点,今天,我不是来教大家找地址的,而是教大家如何通过另外一种方法得到游戏中我们需要的“数值”,那就是通过读取屏幕上的颜色。
猎手为什么要写成一个纯颜色挂,这跟热血江湖这个网络游戏有关。
热血在刚推出来的时候,反外挂的措施是很严厉的,那时候别说什么真正的修改游戏客户端、拦截游戏封包的外挂,就是使用按键精灵的脚本,也存在被封号的危险。
为了保证脚本的有效性--别一出来就被列为打击的对象啊--猎手采取了纯颜色的脚本思路,绝对不涉及内存数据的读取与修改。
它不修改任何内存数据,仅仅靠读取屏幕上各种颜色,达到挂机、解放双手的目的。
当然了,现在的热血江湖,外挂满天飞,BUG满天飞,使用热血嘉年华、热血超辅、热血智辅的比比皆是,不过我也知道,免费的猎手仍然有一定的市场,不过由于很多号级别都很高了,原版猎手不支持垃圾石头过滤,导致经常仓库满而停挂,也有一些人不用猎手改用别的去了。
我也注意到,有些朋友使用插件而实现了垃圾石头过滤,不过,猎手当时已经留下了过滤垃圾石头的“种子”,所以我来说一说,不使用任何读字插件,依照猎手以前的脚本思路继续写下去,来完成垃圾石头过滤的功能。
在正式开讲之前,冷血先作几点说明:1,这里讲的,是脚本写作的“技术性”问题,而不是现成的脚本,我希望你看完本帖之后,能解开你心中的疑惑:凭什么只读颜色就能识别数字呢?2,如果自认为是高手,就不要看此帖子了;如果不想学脚本的编程思路,只要现成的脚本,也不必看此帖子,更不必回帖了。
基础教程

基础教程- 第1课:概述概述本节作为入门级的第一课,将教晓怎么才能编写出优秀的脚本。
也可理解为学习过程。
并尽量简单的说明整个学习过程。
编程初学者常犯的毛病,是希望在尽短时间内,就可以编写出强大功能的软件。
学习编程到可以编写出有用,并且功能还不错的软件,是个长期艰苦的学习过程。
需要付出大量的努力与时间。
没有一掘而就的捷径。
幸好,我们只学按键精灵,不用接触涉及编程中繁杂的方方面面。
也希望按键爱好者以本教程做为编程入门,初窥编程大门。
第一次学写教程类的文字,不足之处,多多指点。
本教程针对读者群为:对按键精灵有一定了解,可以使用按键精灵提供的基础指令来实现简单的机械操作。
如果你是刚刚接触按键精灵,并不了解他有何基础功能的朋友,可以参看由“兄弟工作组”制作的“知识库”。
可在按键精灵官方网站查看。
导读:本教程分三部分。
第一部分,前6节为按键精灵的基础知识。
第二部分,从7节起,在大量的小例子面前,争取把基础知识融会贯通。
第三部分,搜集整理大量实用或复杂的脚本,讲解按键精灵的高级应用技巧。
基础教程- 第2课:零编程学会补红蓝脚本的制作补红蓝脚本的制作我们应该知道,按键精灵拥有一双眼睛,一双手,眼睛可以帮我们查看屏幕上的颜色,而手可以帮我们不断的点击键盘鼠标。
相信多数的朋友对于这双手的操控已经灵活自如了,而要编写出功能强大的脚本,没有眼睛可不行。
本教程以此出发,教会读者使用这双眼睛,更好的控制机器人的手臂。
本章用到的按键精灵基础命令:1、1.IfColor 100,10,112233,02.EndIfIfColor做为按键精灵最重要的颜色判断语句(眼睛),有着良好的易用性与理解性。
语句详细解释:ifColor - 如果颜色100 - 屏幕X象素10 - 屏幕Y象素112233 - 16位进制的颜色(以两位为一种颜色分别代表蓝、红、黄)0 - 相等(1为不相等。
2为模糊匹配)解释:如果在坐标100,10的颜色为112233则执行。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
程序结构介绍
此文为小妖首发于按键精灵论坛。
借百度平台转发,希望能够帮到学按键的朋友。
当然,我自己也是一个新手,只不过,我能看一点代码,做点帮助自己的减少工作量的脚本。
也达不到那些大神们,对API、dos(貌似有更多东西,可惜我只知道这些)等等理解深刻理解的大神那样,做到自己写代码优化脚本。
我只能站在这些大神们做好的东西上,去做一些自己喜欢做的事。
估计很多人和我当初一样迷茫。
看着按键的教程,学按键教程里面录制、跳转标记、找色、找图、找字。
然后弄出个满是goto。
的脚本。
最后自己都不知道脚本写的是什么。
一开始就学补血、补篮、找图打怪。
不仅弄出来的脚本,自己糊涂,给别人看,别人都糊涂。
那怎么徐徐渐进呢?
个人理解来说,我们应该从小到大。
实际上,按键是基于VBS开发出来的(不知道这句话对不对,反正就是类似VB。
)。
一个脚本,基本上都遵循着程序结构来写的。
这儿介绍3种基本的程序结构:
1. 顺序结构。
顺序结构就是按照运行顺序决定。
比如:
1.TracePrint "第一次" //调试显示“第一次”
2.TracePrint "第二次" //调试显示“第二次”
3.TracePrint "第三次" //调试显示“第三次”
这段代码,就是依次显示第一次第二次第三次。
一条一条的运行,一条一条的显示。
当然,这儿你完全可以单步调试来查看运行顺序。
2.选择结构。
选择结构是判断一个值,是否为真,为真的话怎么样,为假的话怎么样。
比如:
1.If 1 = 1 Then //判断 1=1 是否成立
2. TracePrint "真的相等" //成立则调试显示真的相等
3. Else //如果不成立
4. TracePrint "不相等" //不成立则显示不相等
5.End if //判断语句结束
这段代码,第一句的时候,就在做判断,是否相等,相等就执行紧接着的那条,不相等的话,就执行Else 后面的那条。
双斜杠// 后面的字是注释,不会直接运行。
这儿是用来给大家解释语句的。
可以删除,不影响脚本运行。
3.循环结构。
循环结构有很多。
比如,do … loop 循
环While … wend 循环for … Next循环等等。
我这儿不是教程,也就不一一介绍,大家可以去找相关教程。
比如:
1. For i = 0 to 3 //循环3次,循环变量为 i 每次自加1(默认)
2. TracePrint"循环" //调试输出
3. Next // 循环结束
这段代码,我用了一个变量i ,变量通俗点就是我们用于存放一些可变动的数值、字符串等等的名称。
这儿的i 相当于一个盒子,可以装我们想装的东西,比如值1。
变量可以用来相加运算等等等。
具体的需要学习变量相关教程。
需要学习的包括变量命名规则、变量定义、变量作用域、变量使用等等。
当然,变量中还有数组变量、环境变量等等。
把以上的学习,那么我们就可以开始做一些小脚本了。
比如,做一个计算1加到100 显示结果的脚本。
先要分析,1加到100,就是累加。
我们需要一个变量来装这个累加的结果。
比如,定义一个sum来装结果。
1.Dim sum
这样,我们就有了一个变量,用来装累加得到的值。
比如,1+2的值装在sum里面。
那就是: sum=1+2
这儿,我们称为赋值。
就是把1+2 这个值赋值到sum 里面。
所以,想得到1加到10可以这么写:
1.Dim sum //定义 sum
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就会变成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。
如果我们用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 //显示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.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了吗?
我得告诉你,因为这儿有两个结构,一个是顺序结构,一个呢?是循环结构。
程序是这样运行的,
第一、定义
第二、给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次的时候,我已经调试输出了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
本章结束。