这一章我们接着上一章,把程序结构给大家说。
三、循环控制语句
循环控制语句主要有 for 循环,While循环,do循环。其中,for、do循环比较常用。实际上,while与do while 的作用是一样的。我们一个一个说。
For循环。
按键的for循环比较简单。实际上功能比起其他语言,也有所不足。
我们来看例子:
例子1:
For 10
TracePrint “循环”
Next
这个很好理解。For后面跟一个常数(不知道什么是常数的话百度下)作为循环次数。当然了,这个常数可以是算术表达式:2*3、3+5等等。
例子2:
For i=0 To 9
TracePrint i
Delay 100
Next
解释下,这个i是一个变量,你这儿可以是i也可以是其他任意的变量,比如x。i=0,意思是i的初始值是0。To 9 的意思是 “到9”(反正小妖是那么理解的)。也就是说,i是从0到9。每运行一次,i就会在自己的基础上加1,超过了9就不再运行。你可以在这个代码的后面加上:
TracePrint i
你就知道最后的运行结果i的值是10。当然,这儿的9一样可以是式子。这样的方式我们用得非常多。比如用来把一个数组的值输入。
Dim a(9) // 数组下标是从0开始,所以定义10个的话就是写9(0到9一共10个)。
For i=0 to UBound(a) // UBound(a)这是a的最大下标,在这儿值是9。
a(i) = i //把i的值赋值给a(i) 我们这儿找不到什么变值,所以给它赋这个变的,到时候输出的时候可以看到变化。
Next
//下面是输出这个数组。
For i=0 to UBound(a)
TracePrint a(i)
Next
这类我们经常用到读取数据啊,处理数组之类的,非常实用。大家熟悉下写法。后面我们会用实例来给大家复习,这儿只作接单介绍。
例子3:
For i=0 to 9 step 2
TracePrint i
Next
Step 2 是i的值,每次在自己的基础上增加2。前面的For i=0 To 9 没有 step 的这个默认为1。后面的这个,大家可以定义成自己想要的值。上面的这个,就是现实0-9中的偶数。
这儿还是一样的,可以是算数表达式。
例子4:
For i=0 to 9
TracePrint i
If i>4 Then
Exit For //退出当前for循环。
End If
Next
实际上,这儿是与if结合,利用i值的变化控制循环体。Exit For是退出当前循环。多个循环嵌套的时候,只在当前循环有效。不会影响到前一个for。我们经常用在找图之类的代码中。
For i = 0 To 50
FindColor 500-i*10,500-i*10,500+i*10,500+i*10,"000000",intX,intY
If intX > 0 And intY > 0 Then
MoveTo intX, intY
Exit for
End If
Next
我这儿是按键自带的找色。当然,上面这个函数效率很低,而且按键自带了一个区域中心找色了。我这儿只是为了体现Exit For的实用。我们把这个找色函数改成以500,500坐标为中心的中心区域找色。覆盖范围是0,0,1000,1000。如果找到了,鼠标移动过去,并且结束循环。PS:区域中心找色在游戏中经常用。希望大家熟悉找色命令。Exit For可以用于所有for的循环体里面。不只是For i = 0 To 50这一种类型。
For嵌套。
For里面是可以含有for的。我们直接用实例给大家说明:做一个乘法九九表。、
乘法九九表格式如下:
1×1=1
1×2=2 2×2=4
1×3=3 2×3=6 3×3=9
。。。
我们可以看出,其实这两个都是变量。两个都是从1变到9。
再来看:
第一排是1×1。
第二排是1×2 2×2。
第三排是1×3 2×3 3×3。
看出来了么?第一排前面一个是1,后面一个是1,循环一次。
第二排前面一个是1变到2,后面一个全是2,循环两次。
第三排前面一个是1变到3,后面一个全是3,循环3次。
通用式子,如果我们前面一个变量i,后面一个变量j。
我们先写这个。
我们用str装这排的式子(如1×1=1 这个式子)。
三、循环控制语句
循环控制语句主要有 for 循环,While循环,do循环。其中,for、do循环比较常用。实际上,while与do while 的作用是一样的。我们一个一个说。
For循环。
按键的for循环比较简单。实际上功能比起其他语言,也有所不足。
我们来看例子:
例子1:
For 10
TracePrint “循环”
Next
这个很好理解。For后面跟一个常数(不知道什么是常数的话百度下)作为循环次数。当然了,这个常数可以是算术表达式:2*3、3+5等等。
例子2:
For i=0 To 9
TracePrint i
Delay 100
Next
解释下,这个i是一个变量,你这儿可以是i也可以是其他任意的变量,比如x。i=0,意思是i的初始值是0。To 9 的意思是 “到9”(反正小妖是那么理解的)。也就是说,i是从0到9。每运行一次,i就会在自己的基础上加1,超过了9就不再运行。你可以在这个代码的后面加上:
TracePrint i
你就知道最后的运行结果i的值是10。当然,这儿的9一样可以是式子。这样的方式我们用得非常多。比如用来把一个数组的值输入。
Dim a(9) // 数组下标是从0开始,所以定义10个的话就是写9(0到9一共10个)。
For i=0 to UBound(a) // UBound(a)这是a的最大下标,在这儿值是9。
a(i) = i //把i的值赋值给a(i) 我们这儿找不到什么变值,所以给它赋这个变的,到时候输出的时候可以看到变化。
Next
//下面是输出这个数组。
For i=0 to UBound(a)
TracePrint a(i)
Next
这类我们经常用到读取数据啊,处理数组之类的,非常实用。大家熟悉下写法。后面我们会用实例来给大家复习,这儿只作接单介绍。
例子3:
For i=0 to 9 step 2
TracePrint i
Next
Step 2 是i的值,每次在自己的基础上增加2。前面的For i=0 To 9 没有 step 的这个默认为1。后面的这个,大家可以定义成自己想要的值。上面的这个,就是现实0-9中的偶数。
这儿还是一样的,可以是算数表达式。
例子4:
For i=0 to 9
TracePrint i
If i>4 Then
Exit For //退出当前for循环。
End If
Next
实际上,这儿是与if结合,利用i值的变化控制循环体。Exit For是退出当前循环。多个循环嵌套的时候,只在当前循环有效。不会影响到前一个for。我们经常用在找图之类的代码中。
For i = 0 To 50
FindColor 500-i*10,500-i*10,500+i*10,500+i*10,"000000",intX,intY
If intX > 0 And intY > 0 Then
MoveTo intX, intY
Exit for
End If
Next
我这儿是按键自带的找色。当然,上面这个函数效率很低,而且按键自带了一个区域中心找色了。我这儿只是为了体现Exit For的实用。我们把这个找色函数改成以500,500坐标为中心的中心区域找色。覆盖范围是0,0,1000,1000。如果找到了,鼠标移动过去,并且结束循环。PS:区域中心找色在游戏中经常用。希望大家熟悉找色命令。Exit For可以用于所有for的循环体里面。不只是For i = 0 To 50这一种类型。
For嵌套。
For里面是可以含有for的。我们直接用实例给大家说明:做一个乘法九九表。、
乘法九九表格式如下:
1×1=1
1×2=2 2×2=4
1×3=3 2×3=6 3×3=9
。。。
我们可以看出,其实这两个都是变量。两个都是从1变到9。
再来看:
第一排是1×1。
第二排是1×2 2×2。
第三排是1×3 2×3 3×3。
看出来了么?第一排前面一个是1,后面一个是1,循环一次。
第二排前面一个是1变到2,后面一个全是2,循环两次。
第三排前面一个是1变到3,后面一个全是3,循环3次。
通用式子,如果我们前面一个变量i,后面一个变量j。
我们先写这个。
我们用str装这排的式子(如1×1=1 这个式子)。